Définit l'état du commutateur $BST_DONTCLICK sur un bouton
#include <GuiButton.au3>
_GUICtrlButton_SetDontClick ( $hWnd [, $bState = True] )
$hWnd | ID/handle du contrôle |
$bState | [optionnel] L'état. True pour positionner $BST_DONTCLICK, sinon False |
Windows Vista ou une version ultérieure.
Consultez BM_SETDONTCLICK dans la librairie MSDN.
#include <GuiButton.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Global $g_hBtn, $g_idMemo, $g_hBtn2 ; Notez que le controlID de ces boutons ne peut pas être lu avec GUICtrlRead Example() Func Example() Local $hGUI $hGUI = GUICreate("Buttons", 400, 400) $g_idMemo = GUICtrlCreateEdit("", 10, 100, 390, 284, $WS_VSCROLL) GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New") $g_hBtn = _GUICtrlButton_Create($hGUI, "Button1", 10, 10, 160, 40) _GUICtrlButton_SetDontClick($g_hBtn) $g_hBtn2 = _GUICtrlButton_Create($hGUI, "Button2", 10, 55, 160, 40) GUIRegisterMsg($WM_COMMAND, "WM_COMMAND") GUISetState(@SW_SHOW) Do Until GUIGetMsg() = $GUI_EVENT_CLOSE EndFunc ;==>Example ; Écrit une ligne dans le contrôle mémo Func MemoWrite($sMessage) GUICtrlSetData($g_idMemo, $sMessage & @CRLF, 1) EndFunc ;==>MemoWrite ; Gestionnaire de l'événement clic du bouton Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $iMsg Local $iNotifyCode = BitShift($wParam, 16) Local $iID = BitAND($wParam, 0x0000FFFF) Local $hCtrl = $lParam Local $sText = "" If $hCtrl = $g_hBtn Or $hCtrl = $g_hBtn2 Then Switch $iNotifyCode Case $BN_CLICKED If BitAND(_GUICtrlButton_GetState($hCtrl), $BST_DONTCLICK) = $BST_DONTCLICK Then $sText = "$BST_DONTCLICK" & @CRLF Else $sText = "$BN_CLICKED" & @CRLF EndIf MemoWrite($sText & _ "-----------------------------" & @CRLF & _ "WM_COMMAND - Infos:" & @CRLF & _ "-----------------------------" & @CRLF & _ "Code" & @TAB & ":" & $iNotifyCode & @CRLF & _ "CtrlID" & @TAB & ":" & $iID & @CRLF & _ "CtrlHWnd:" & $hCtrl & @CRLF & _ _GUICtrlButton_GetText($hCtrl) & @CRLF) Case $BN_PAINT $sText = "$BN_PAINT" & @CRLF Case $BN_PUSHED, $BN_HILITE $sText = "$BN_PUSHED, $BN_HILITE" & @CRLF Case $BN_UNPUSHED, $BN_UNHILITE $sText = "$BN_UNPUSHED" & @CRLF Case $BN_DISABLE $sText = "$BN_DISABLE" & @CRLF Case $BN_DBLCLK, $BN_DOUBLECLICKED $sText = "$BN_DBLCLK, $BN_DOUBLECLICKED" & @CRLF Case $BN_SETFOCUS $sText = "$BN_SETFOCUS" & @CRLF Case $BN_KILLFOCUS $sText = "$BN_KILLFOCUS" & @CRLF EndSwitch Return 0 ; Seulement pour tester un clic sur le bouton EndIf ; Traite les commandes des messages internes AutoIt3 par défaut. ; Vous pouvez également modifier la ligne. ; !!! Mais seulement 'Return' (sans aucune valeur) ne traitera pas ; le message AutoIt3 par défaut dans le futur!!! Return $GUI_RUNDEFMSG EndFunc ;==>WM_COMMAND