Cyri Posted March 18, 2009 Share Posted March 18, 2009 I'm working with a listview with report view style on. I'm wondering if there's a way to select sub-items? No matter how I configure it I can either select the entire row or only the main items. Hoping someone may know of a way to do this. Link to comment Share on other sites More sharing options...
martin Posted March 19, 2009 Share Posted March 19, 2009 I'm working with a listview with report view style on. I'm wondering if there's a way to select sub-items? No matter how I configure it I can either select the entire row or only the main items. Hoping someone may know of a way to do this. Add this line after creating your listview GUIRegisterMsg($WM_NOTIFY, "WM_Notify_Events") and add this function Func WM_Notify_Events($hWndGUI, $MsgID, $wParam, $lParam) #forceref $hWndGUI, $MsgID, $wParam Local $tagNMHDR, $event,$selrow,$selcol $tagNMHDR = DllStructCreate("int;int;int", $lParam);NMHDR (hwndFrom, idFrom, code) If @error Then Return $event = DllStructGetData($tagNMHDR, 3) Select Case $wParam = $ListView1;<----------change to be the variable for your listview Select Case $event = $NM_CLICK;<--------assuming you want to know the column when you left click Local $tagNMITEMACTIVATE = DllStructCreate("int;int;int;int;int;int;int;int;int", $lParam) $selrow = DllStructGetData($tagNMITEMACTIVATE, 4) $selcol = DllStructGetData($tagNMITEMACTIVATE, 5) ConsoleWrite("col selected = " & $selcol & @CRLF);<-------replace with your own code EndSelect EndSelect Return $GUI_RUNDEFMSG EndFunc ;==>WM_Notify_Events Serial port communications UDF Includes functions for binary transmission and reception.printing UDF Useful for graphs, forms, labels, reports etc.Add User Call Tips to SciTE for functions in UDFs not included with AutoIt and for your own scripts.Functions with parameters in OnEvent mode and for Hot Keys One function replaces GuiSetOnEvent, GuiCtrlSetOnEvent and HotKeySet.UDF IsConnected2 for notification of status of connected state of many urls or IPs, without slowing the script. Link to comment Share on other sites More sharing options...
npploveyou Posted July 23, 2011 Share Posted July 23, 2011 sorry to dig up this old topic but when I was searching for the same concept, I found this interesting page. So please just help with my question, instead of single click to view the sub item, how to change it to double click? Single click is cool but if I make the event to let people open a website when click on the column, that would be mess! The better way that I could think of is change it to double mouse click. Thanks! Link to comment Share on other sites More sharing options...
twitchyliquid64 Posted July 23, 2011 Share Posted July 23, 2011 You need to detect double clicks manually, using guigetmsg, timers, and counters. So you detect clicks on the control, and then check which is selected. ongoing projects:-firestorm: Largescale P2P Social NetworkCompleted Autoit Programs/Scripts: Variable Pickler | Networked Streaming Audio (in pure autoIT) | firenet p2p web messenger | Proxy Checker | Dynamic Execute() Code Generator | P2P UDF | Graph Theory Proof of Concept - Breadth First search Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted July 23, 2011 Moderators Share Posted July 23, 2011 hyperzap, You need to detect double clicks manually, using guigetmsg, timers, and countersSorry to be blunt, but that is complete rubbish. You just need to look for the $NM_DBLCLK message and enlarge the struct to give you the column value as well. npploveyou, Here is an example showing how to do it - look for the <<<<<<<<<<< lines: #include <GuiConstantsEx.au3> #include <WindowsConstants.au3> #Include <GuiListView.au3> $hGui = GUICreate("Test", 250, 250) $hListView = GUICtrlCreateListView("Column 1|Column 2|Column 3", 10, 10, 230, 160) For $i = 1 To 6 GUICtrlCreateListViewItem("Item " & $i & "1|Item " & $i & "2|Item " & $i & "3", $hListView) Next GUISetState() GUIRegisterMsg($WM_NOTIFY, "_WM_NOTIFY") While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Func _WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $iMsg, $wParam Local $tStruct = DllStructCreate("hwnd;uint_ptr;int_ptr;int;int", $lParam) ; Increase the struct size to get the column <<<<<<<<<<<<<<<< If @error Then Return Switch DllStructGetData($tStruct, 3) Case $NM_DBLCLK ; Look for the double click <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ConsoleWrite("Row: " & DllStructGetData($tStruct, 4) + 1 & " - Col: " &DllStructGetData($tStruct, 5) + 1 & @CRLF) EndSwitch EndFunc ;==>On_WM_NOTIFY All clear? 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...
npploveyou Posted July 23, 2011 Share Posted July 23, 2011 that was perfectly clear for me. Thanks a lot! 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