Clique sur un noeud
#include <GuiTreeView.au3>
_GUICtrlTreeView_ClickItem ( $hWnd, $hItem [, $sButton = "left" [, $bMove = False [, $iClicks = 1 [, $iSpeed = 0]]]] )
$hWnd | ID/handle du contrôle |
$hItem | Handle du noeud |
$sButton | [optionnel] Bouton à cliquer |
$bMove | [optionnel] Si True, la souris sera déplacée. Si False, la souris ne bougera pas. |
$iClicks | [optionnel] Nombre de clics |
$iSpeed | [optionnel] Vitesse de déplacement de la souris |
Succès: | Retourne 1. |
Échec: | Retourne 0 et définit @error <> 0. |
#include <GUIConstantsEx.au3> #include <GuiImageList.au3> #include <GuiTreeView.au3> #include <WindowsConstants.au3> Global $g_idTreeView Example() Func Example() Local $hItem, $hImage, $iImage Local $iStyle = BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS, $TVS_CHECKBOXES) GUICreate("TreeView Click Item", 400, 300) $g_idTreeView = GUICtrlCreateTreeView(2, 2, 396, 268, $iStyle, $WS_EX_CLIENTEDGE) GUISetState(@SW_SHOW) GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") $hImage = _GUIImageList_Create(16, 16, 5, 3) _GUIImageList_AddIcon($hImage, "shell32.dll", 110) _GUIImageList_AddIcon($hImage, "shell32.dll", 131) _GUIImageList_AddIcon($hImage, "shell32.dll", 165) _GUIImageList_AddIcon($hImage, "shell32.dll", 168) _GUIImageList_AddIcon($hImage, "shell32.dll", 137) _GUIImageList_AddIcon($hImage, "shell32.dll", 146) _GUICtrlTreeView_SetNormalImageList($g_idTreeView, $hImage) _GUICtrlTreeView_BeginUpdate($g_idTreeView) For $x = 1 To Random(2, 10, 1) $iImage = Random(0, 5, 1) $hItem = _GUICtrlTreeView_Add($g_idTreeView, 0, StringFormat("[%02d] New Item", $x), $iImage, $iImage) For $y = 1 To Random(2, 10, 1) $iImage = Random(0, 5, 1) _GUICtrlTreeView_AddChild($g_idTreeView, $hItem, StringFormat("[%02d] New Child", $y), $iImage, $iImage) Next Next _GUICtrlTreeView_EndUpdate($g_idTreeView) _GUICtrlTreeView_ClickItem($g_idTreeView, $hItem, "left", False, 2) ; Boucle jusqu'à ce que l'utilisateur quitte. Do Until GUIGetMsg() = $GUI_EVENT_CLOSE GUIDelete() EndFunc ;==>Example Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $iMsg, $wParam Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndTreeview $hWndTreeview = $g_idTreeView If Not IsHWnd($g_idTreeView) Then $hWndTreeview = GUICtrlGetHandle($g_idTreeView) $tNMHDR = DllStructCreate($tagNMHDR, $lParam) $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")) $iIDFrom = DllStructGetData($tNMHDR, "IDFrom") $iCode = DllStructGetData($tNMHDR, "Code") Switch $hWndFrom Case $hWndTreeview Switch $iCode Case $NM_CLICK ; L'utilisateur a cliqué sur le bouton gauche de la souris dans le contrôle _DebugPrint("$NM_CLICK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; Retour 1; non nul pour interdi le traitement par défaut Return 0 ; zéro pour permettre le traitement par défaut Case $NM_DBLCLK ; L'utilisateur a double-cliqué sur le bouton gauche de la souris dans le contrôle _DebugPrint("$NM_DBLCLK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; Retour 1; non nul pour interdire le traitement par défaut Return 0 ; zéro pour permettre le traitement par défaut Case $NM_RCLICK ; L'utilisateur a cliqué sur le bouton droit de la souris dans le contrôle _DebugPrint("$NM_RCLICK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; Retour 1; non nul pour interdire le traitement par défaut Return 0 ; zéro pour permettre le traitement par défaut Case $NM_RDBLCLK ; L'utilisateur a double-cliqué sur le bouton droit de la souris dans le contrôle _DebugPrint("$NM_RDBLCLK" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; Retour 1; non nul pour interdire le traitement par défaut Return 0 ; zéro pour permettre le traitement par défaut EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_NOTIFY Func _DebugPrint($s_Text , $sLine = @ScriptLineNumber) ConsoleWrite( _ "!===========================================================" & @CRLF & _ "+======================================================" & @CRLF & _ "-->Line(" & StringFormat("%04d", $sLine) & "):" & @TAB & $s_Text & @CRLF & _ "+======================================================" & @CRLF) EndFunc ;==>_DebugPrint