Jump to content
Sign in to follow this  

Set Mouse right click to ControlListView Item

Recommended Posts


_GUICtrlListView_ClickItem perhaps? :)


Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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:


ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area


Share this post

Link to post
Share on other sites

You need to send a WM_NOTIFY message, but there is also some work with structures and it's definitely not one line of code...

Heres what you need to do. As with much of what I write... This is pseudo code. I haven't tested it at all.

$iListviewId = Id of the listview
$iItem = The ZERO BASED index of the item. 
$iSubItem = The subitem (zero based as well)

$hParentGUI = Handle of the parent GUI (Possibly using _WinAPI_GetParent)
$hListViewHandle = Handle of the listview (GUICtrlGetHandle?)
$x = The x coord of the click. NB this is important as many implementations of right clicks rely on this to pass to a LVM_SUBITEMHITTEST message or similar
$y = y coord. The x and y could be got using LVM_GETITEMPOSITION if it's not the mouse pos.

Local $tNMIA = DllStructCreate($tagNMITEMACTIVATE)

; NMHDR parts
DllStructSetData($tNMIA, "hWndFrom", $hListViewHandle)
DllStructSetData($tNMIA, "Code", $NM_RCLICK)

DllStructSetData($tNMIA, "Item", $iItem)
DllStructSetDate($tNMIA, "SubItem", $iSubItem)
DllStructSetDate($tNMIA, "X", $iX)
DllStructSetDate($tNMIA, "Y", $iY)

_SendMessage($hParentGUI, $WM_NOTIFY, $iListviewId, DllStructGetPtr($tNMIA))

Share this post

Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Create New...