Nithyanandam Posted August 20, 2009 Share 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 Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted August 20, 2009 Moderators Share 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 Link to comment Share on other sites More sharing options...
smashly Posted August 20, 2009 Share 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 Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted August 20, 2009 Moderators Share 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 Link to comment Share on other sites More sharing options...
Nithyanandam Posted August 20, 2009 Author Share Posted August 20, 2009 Thanks guys... all you suggestions helped me a lot... thanks... Link to comment Share on other sites More sharing options...
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