Nithyanandam Posted August 20, 2009 Posted August 20, 2009 Hi I have two List views H1 and H2. When I make a selection in H1 the results in H2 should be automaticaly updated. i.e WE should be able to call a fucntion when H1 is clicked. Then that function will update the H2. How Can we call a function when listview item is clicked? Thanks Sasikumar Nithyanandam
Moderators Melba23 Posted August 20, 2009 Moderators Posted August 20, 2009 Nithyanandam,Use GUIRegisterMsg with the WM_NOTIFY message to capture a click in the H1 ListView - something like this:Func MY_WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $iMsg, $wParam Local $tNMHDR = DllStructCreate("int;int;int", $lParam) If @error Then Return If DllStructGetData($tNMHDR, 3) = $NM_DBLCLICK Then $fClick = True $tNMHDR = 0 Return $GUI_RUNDEFMSG EndFuncThen when the $fClick flag is set, you can run your function to update the H2 ListView. Do not forget to reset the $fClick flag though. >_< M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
smashly Posted August 20, 2009 Posted August 20, 2009 (edited) Nithyanandam, Use GUIRegisterMsg with the WM_NOTIFY message to capture a click in the H1 ListView - something like this: Func MY_WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $iMsg, $wParam Local $tNMHDR = DllStructCreate("int;int;int", $lParam) If @error Then Return If DllStructGetData($tNMHDR, 3) = $NM_DBLCLICK Then $fClick = True $tNMHDR = 0 Return $GUI_RUNDEFMSG EndFunc Then when the $fClick flag is set, you can run your function to update the H2 ListView. Do not forget to reset the $fClick flag though. >_< M23 Hi, almost but there's a couple of problems with your MY_WM_NOTIFY() function.. Your not trapping the msg to which control is double clicked.. DllStructGetData($tNMHDR, 1) = handle to control For example if I had a Tab control with a ListView control on my Gui then $NM_DBLCLICK would fire on either control as your not checking which control is double clicked. The "If @error Then Return" is not really needed $tNMHDR = 0 isn't really needed even though it's good practice to clear a struct, but in this case the struct will be reset/cleared when entering/leaving the function The tagNMHDR would be "hwnd;int_ptr;int" to make it compatible with 64bit and 32bit os (I only discovered that recently while perusing the bugtrac) Myself I would point the op to AutoIt help file -> User Defined Functions -> GuiListView Management -> _GUICtrlListView_Create() example to get an understanding of the WM_NOTIFY() function and how it works. Edit: If the op had posted some brief partly working code I probably would have modded his code to show WM_NOTIFY()in action. Cheers Edited August 20, 2009 by smashly
Moderators Melba23 Posted August 20, 2009 Moderators Posted August 20, 2009 smashly, Thank you for those clarifications. Always happy to learn. >_< M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area
Nithyanandam Posted August 20, 2009 Author Posted August 20, 2009 Thanks guys... all you suggestions helped me a lot... thanks...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now