dinodod Posted November 27, 2010 Share Posted November 27, 2010 Guys & Gals, I'm pulling out my hair on this and I'm not sure what to do. I have a ListViewItem control and I need to be able to Right click on the item which will bring up a Submenu of choices that I want to perform on the item I clicked on. Yet my script will ONLY return the last item in the list and not the item I clicked on. Can anyone point out my mistake and educate me on what to do please? expandcollapse popup$listview = GUICtrlCreateListView("PC Name|IP", 10, 10, 300, 350, $LVS_SINGLESEL, bitor($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES)) GUICtrlSetBkColor($ListView, $GUI_BKCOLOR_LV_ALTERNATE) GUICtrlSetBkColor(-1, 0x00CCCC) ;$item1 = GUICtrlCreateListViewItem("item2|col22", $listview) _SQLite_Startup () _SQLite_Open (@scriptdir & "\database\tgh.db") local $hQuery, $sMsg, $aColumn Global $PCName ;Remember this is SQLITE not SQL so the syntax is different!!!!!! _SQlite_Query (-1, "Select * from PcInfo order by Name limit 10 ;", $hQuery) ; the query While _SQLite_FetchData ($hQuery, $aColumn) = $SQLITE_OK $ListViewItem = GUICtrlCreateListViewItem($aColumn[1] & "|" & $aColumn[2], $listview) GUICtrlSetBkColor(-1, 0xffff00) ;GUICtrlSetOnEvent($ListViewItem, "_Test") ;$sMsg &= @CRLF & $aRow[2] & @TAB & @TAB & $aRow[1] ;Right Click Menu $PCName = $aColumn[1] $PCmenu = GUICtrlCreateContextMenu($ListViewItem) GUICtrlCreateMenuItem("Remote Command Prompt", $PCmenu) GUICtrlSetOnEvent(-1, "_RemoteCommandPrompt") WEnd _SQLite_Close() _SQLite_Shutdown() GUISetState(@SW_SHOW) EndFunc Func _RemoteCommandPrompt() ; =================== MsgBox(0, "listview item", GUICtrlRead($ListViewItem)) ; ===================== EndFunc Digital Chaos - Life as we know it today.I'm a Think Tank. Problem is, my tank is empty.The Quieter you are, the more you can HearWhich would you choose - Peace without Freedom or Freedom without Peace?Digital Chaos Macgyver ToolkitCompletely Dynamic MenuSQLIte controlsAD FunctionsEXCEL UDFPC / Software Inventory UDFPC / Software Inventory 2GaFrost's Admin Toolkit - My main competitor :)Virtual SystemsVMWAREMicrosoft Virtual PC 2007 Link to comment Share on other sites More sharing options...
BugFix Posted November 29, 2010 Share Posted November 29, 2010 Here an example: expandcollapse popup#include <ListViewConstants.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <GUIListView.au3> $gui = GUICreate('test') ; === $LVS_EX_FULLROWSELECT required to identify subitem $hListView = GUICtrlCreateListView('Spalte1|Spalte2', 10, 10, 300, 200, -1, BitOR($LVS_EX_TRACKSELECT,$LVS_EX_FULLROWSELECT)) _GUICtrlListView_SetColumnWidth($hListView, 0, 146) _GUICtrlListView_SetColumnWidth($hListView, 1, $LVSCW_AUTOSIZE_USEHEADER) For $i = 1 To 10 GUICtrlCreateListViewItem('row ' & $i & ' col 1|row ' & $i & ' col 2', $hListView) Next GUISetState() GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") Do $msg = GUIGetMsg() Until $msg = $GUI_EVENT_CLOSE Func _RightClick($Info) MsgBox(0, 'read row-index ' & $Info[3] & ', col-index ' & $Info[4] , _GUICtrlListView_GetItemText($Info[1], $Info[3], $Info[4]) ) EndFunc Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam) Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView $hWndListView = $hListView If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView) $tNMHDR = DllStructCreate($tagNMHDR, $ilParam) $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")) $iIDFrom = DllStructGetData($tNMHDR, "IDFrom") $iCode = DllStructGetData($tNMHDR, "Code") Switch $hWndFrom Case $hWndListView Switch $iCode Case $NM_RCLICK ; Sent by a list-view control when the user clicks an item with the right mouse button Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam) Local $aInfo[5] = [$hWndFrom, _ $iIDFrom, _ $iCode, _ DllStructGetData($tInfo, "Index"), _ DllStructGetData($tInfo, "SubItem")] _RightClick($aInfo) EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_NOTIFY Best Regards BugFix 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