Retourne le handle du contrôle d'édition qui est en cours d'utilisation pour éditer le texte d'un noeud
#include <GuiTreeView.au3>
_GUICtrlTreeView_GetEditControl ( $hWnd )
$hWnd | ID/handle du contrôle |
Succès: | Retourne le handle du contrôle d'édition. |
Échec: | Retourne 0. |
#include <GUIConstantsEx.au3> #include <GuiImageList.au3> #include <GuiTreeView.au3> #include <WindowsConstants.au3> Global $g_hTreeView Example() Func Example() Local $hGui, $ahItem[6], $hImage Local $iStyle = BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS, $TVS_CHECKBOXES) $hGui = GUICreate("TreeView Get Edit Control", 400, 300) $g_hTreeView = _GUICtrlTreeView_Create($hGui, 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_hTreeView, $hImage) For $x = 0 To _GUIImageList_GetImageCount($hImage) - 1 $ahItem[$x] = _GUICtrlTreeView_Add($g_hTreeView, 0, StringFormat("[%02d] New Item", $x + 1), $x, $x) Next ; Editer l'étiquette du noeud 0 _GUICtrlTreeView_EditText($g_hTreeView, $ahItem[0]) Sleep(1000) _GUICtrlTreeView_EndEdit($g_hTreeView) ; 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_hTreeView If Not IsHWnd($g_hTreeView) Then $hWndTreeview = GUICtrlGetHandle($g_hTreeView) $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 interdire 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 Case $NM_KILLFOCUS ; Le contrôle a perdu le focus d'entrée _DebugPrint("$NM_KILLFOCUS" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; Aucune valeur de retour Case $NM_RETURN ; Le contrôle a le focus d'entrée et l'utilisateur a appuyé sur une touche _DebugPrint("$NM_RETURN" & @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_SETCURSOR; contrôle donne le curseur en réponse à un message WM_SETCURSOR ; Local $TINFO = DllStructCreate ($tagNMMOUSE, $lParam) ; $hwndFrom = HWnd (DllStructGetData ($TINFO," hwndFrom")) ; $iIDFrom = DllStructGetData ($TINFO," IDFrom") ; $iCode = DllStructGetData ($TINFO, «Code») ; _DebugPrint (\"$NM_SETCURSOR" et CRLF &" - > hwndFrom :\" & TAB & $& hwndFrom CRLF & _ ; » - > IDFrom :\" & TAB & $& iIDFrom CRLF & _ ; » - > Code Promo:" & TAB & $& iCode CRLF & _ ; » - > ItemSpec :\" & TAB & DllStructGetData ($TINFO," ItemSpec") et CRLF & _ ; » - > ItemData :\" & TAB & DllStructGetData ($TINFO," ItemData") et CRLF & _ ;"-> X :\" & TAB DllStructGetData & ($TINFO,"X\") et CRLF & _ ; » - > Y :\" & TAB & DllStructGetData ($TINFO,"Y\") et CRLF & _ ; » - > HitInfo :\" & TAB & DllStructGetData ($TINFO," HitInfo")) ; Retour 0; pour activer, dans le contrôle, le déplacement du curseur ; Retour 1; non nul pour interdire, dans le contrôle, le déplacement du curseur Case $NM_SETFOCUS ; Le contrôle a reçu le focus d'entrée _DebugPrint("$NM_SETFOCUS" & @CRLF & "--> hWndFrom:" & @TAB & $hWndFrom & @CRLF & _ "-->IDFrom:" & @TAB & $iIDFrom & @CRLF & _ "-->Code:" & @TAB & $iCode) ; Aucune valeur de retour Case $TVN_BEGINDRAGA, $TVN_BEGINDRAGW _DebugPrint("$TVN_BEGINDRAG") Case $TVN_BEGINLABELEDITA, $TVN_BEGINLABELEDITW _DebugPrint("$TVN_BEGINLABELEDIT") ConsoleWrite("Edit Control Handle: 0x" & Hex(_GUICtrlTreeView_GetEditControl($g_hTreeView)) & @CRLF & _ "IsPtr = " & IsPtr(_GUICtrlTreeView_GetEditControl($g_hTreeView)) & " IsHWnd = " & IsHWnd(_GUICtrlTreeView_GetEditControl($g_hTreeView))) Case $TVN_BEGINRDRAGA, $TVN_BEGINRDRAGW _DebugPrint("$TVN_BEGINRDRAG") Case $TVN_DELETEITEMA, $TVN_DELETEITEMW _DebugPrint("$TVN_DELETEITEM") Case $TVN_ENDLABELEDITA, $TVN_ENDLABELEDITW _DebugPrint("$TVN_ENDLABELEDIT") Local $tInfo = DllStructCreate($tagNMHDR & ";" & $TagTVITEMEX, $lParam) If DllStructGetData($tInfo, "Text") <> 0 Then Local $tBuffer = DllStructCreate("char Text[" & DllStructGetData($tInfo, "TextMax") & "]", DllStructGetData($tInfo, "Text")) _GUICtrlTreeView_SetText($g_hTreeView, _GUICtrlTreeView_GetSelection($g_hTreeView), DllStructGetData($tBuffer, "Text")) EndIf Case $TVN_GETDISPINFOA, $TVN_GETDISPINFOW _DebugPrint("$TVN_GETDISPINFO") Case $TVN_GETINFOTIPA, $TVN_GETINFOTIPW _DebugPrint("$TVN_GETINFOTIP") Case $TVN_ITEMEXPANDEDA, $TVN_ITEMEXPANDEDW _DebugPrint("$TVN_ITEMEXPANDED") Case $TVN_ITEMEXPANDINGA, $TVN_ITEMEXPANDINGW _DebugPrint("$TVN_ITEMEXPANDING") Case $TVN_KEYDOWN _DebugPrint("$TVN_KEYDOWN") Case $TVN_SELCHANGEDA, $TVN_SELCHANGEDW _DebugPrint("$TVN_SELCHANGED") Case $TVN_SELCHANGINGA, $TVN_SELCHANGINGW _DebugPrint("$TVN_SELCHANGING") Case $TVN_SETDISPINFOA, $TVN_SETDISPINFOW _DebugPrint("$TVN_SETDISPINFO") Case $TVN_SINGLEEXPAND _DebugPrint("$TVN_SINGLEEXPAND") 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