Jump to content
Sign in to follow this  
name15

double click mouse on TreeView

Recommended Posts

name15

how can make function when user double click mouse on TreeView and get item name insert item

like file explorer

Share this post


Link to post
Share on other sites
Melba23

name15,

When you post here it always helps if you have had a go at solving your problems beforehand. Having some code to work on is a great help - and no-one here is too keen to help the "code it for me" brigade. :)

To do what you want, you need to trap the NM_DBLCLK message from the TreeView. Why not try yourself - there are lots of examples on the forums if you search.

If you get stuck...... ;)

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiTreeView.au3>
#include <Array.au3>

Global $aData[5] = [4, "Item 1", "Item 2", "Item 3", "Item 4"]
Global $aItem_Handles[UBound($aData)]

Global $hMain_GUI = GUICreate("TreeView Demo", 500, 500)

$hTree = GUICtrlCreateTreeView(10, 10, 480, 480)
$hRoot = GUICtrlCreateTreeViewItem("Root", $hTree)
For $i = 1 To $aData[0]
    $aItem_Handles[$i] = GUICtrlGetHandle(GUICtrlCreateTreeViewItem($aData[$i], $hRoot))
Next

GUISetState()

; Initialise "DoubleClick on TreeView function"
GUIRegisterMsg($WM_NOTIFY, "MY_WM_NOTIFY")

Global $fDblClk = False

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch

    ; Check if tree view double clicked
    If $fDblClk = True Then
        $sText = _GUICtrlTreeView_GetText($hTree, _GUICtrlTreeView_GetSelection($hTree))
        MsgBox(0, "Hit", "You double clicked on " & $sText )
        $fDblClk = False
    EndIf
WEnd

Func MY_WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)

    Switch $wParam
        Case $hTree
            Local $tagNMHDR = DllStructCreate("int;int;int", $lParam)
            If @error Then Return
            If DllStructGetData($tagNMHDR, 3) = $NM_DBLCLK Then $fDblClk = True
    EndSwitch
    $tagNMHDR = 0

EndFunc  ;==>MY_WM_NOTIFY

M23

  • Like 1

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

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
name15

thank you but i have error undefined function in client

Share this post


Link to post
Share on other sites
Melba23

name15,

So post your code so we can see what might be wrong - my crystal ball is not working very well today. :)

M23


Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

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
lowray1975

Does anyone know why this code no longer works on Windows 7 x64?

Share this post


Link to post
Share on other sites
AdmiralAlkex

Does anyone know why this code no longer works on Windows 7 x64?

The struct is bad.

Change

Local $tagNMHDR = DllStructCreate("int;int;int", $lParam)
If @error Then Return
If DllStructGetData($tagNMHDR, 3) = $NM_DBLCLK Then $fDblClk = True
EndSwitch
$tagNMHDR = 0

to

Local $tStruct = DllStructCreate($tagNMHDR, $lParam)
If @error Then Return
If DllStructGetData($tStruct, 3) = $NM_DBLCLK Then $fDblClk = True
EndSwitch

Share this post


Link to post
Share on other sites
lowray1975

AdmiralAlkex: Thank you!

Of course I have to ask: how did you figure that out? I spent countless days trying to figure it out and found nothing. I would love to learn!

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  

×