Crée un contrôle Button
#include <GuiButton.au3>
_GUICtrlButton_Create ( $hWnd, $sText, $iX, $iY, $iWidth, $iHeight [, $iStyle = -1 [, $iExStyle = -1]] )
$hWnd | Handle du parent ou de la fenêtre propriétaire |
$sText | Texte à ajouter au bouton |
$iX | Position horizontale du contrôle |
$iY | Position verticale du contrôle |
$iWidth | Largeur du contrôle |
$iHeight | Hauteur du contrôle |
$iStyle | [optionnel] Style du contrôle: $BS_AUTO3STATE - Crée une case à cocher à trois états dont le cycle est sélectionné/indisponible/effacé, chaque fois que l'utilisateur sélectionne la case à cocher. $BS_AUTOCHECKBOX - Crée une case à cocher dans laquelle les états commutent entre sélectionné/effacé chaque fois que l'utilisateur sélectionne la case à cocher. $BS_AUTORADIOBUTTON - Pareil qu'un bouton radio, sauf que lorsque l'utilisateur le sélectionne, le bouton se met automatiquement en surbrillance et supprime la sélection de tous les autres radio boutons du même style dans le même groupe. $BS_FLAT - Spécifie que le bouton est de dimension 2; il n'utilise pas l'ombrage par défaut pour créer une image 3-D. $BS_GROUPBOX - Crée un rectangle dans lequel les autres boutons peuvent être regroupées. Tout texte associé à ce style s'affiche dans le coin supérieur gauche du rectangle. $BS_PUSHLIKE - Construit un bouton (comme une case à cocher, case à cocher à trois états, ou un bouton radio) qui ressemble et réagit comme un bouton-poussoir. Ce bouton est soulevé quand il n'est pas poussé ou pas coché, et enfoncé quand il est poussé ou coché. $BS_DEFPUSHBUTTON - Crée un bouton-poussoir avec une bordure noire épaisse. Si le bouton est dans une boîte de dialogue, l'utilisateur peut sélectionner le bouton en pressant la touche ENTER, même si le bouton n'a pas le focus d'entrée. Ce style est utile pour permettre à l'utilisateur de sélectionner rapidement l'option la plus probable, ou par défaut. $BS_BOTTOM - Place le texte au bas du rectangle bouton. $BS_CENTER - Centre le texte horizontalement dans le rectangle bouton. $BS_LEFT - Aligne à gauche le texte dans le rectangle bouton sur le côté droit de la case à cocher. $BS_MULTILINE - Dispose le texte du bouton sur plusieurs lignes si la chaîne de texte est trop longue pour tenir sur une seule ligne dans le rectangle bouton. $BS_RIGHT - Aligne à droite le texte dans le rectangle bouton sur le côté droit de la case à cocher. $BS_RIGHTBUTTON - Positionn un carré de case à cocher sur le côté droit du rectangle bouton. $BS_TOP - Place le texte en haut du rectangle bouton. $BS_VCENTER - Centre verticalement le texte dans le rectangle bouton. $BS_ICON - Indique que le bouton doit afficher une icône. $BS_BITMAP - Indique que le bouton doit afficher une image bitmap. $BS_NOTIFY - Permet au bouton d'envoyer les messages de notification BN_KILLFOCUS et BN_SETFOCUS à sa fenêtre parente. Notez qu'un bouton envoit le message de notification BN_CLICKED indépendamment du fait qu'il a ce style. Pour obtenir les messages de notification BN_DBLCLK, le bouton doit avoir le style BS_RADIOBUTTON ou BS_OWNERDRAW. Styles Vista: $BS_SPLITBUTTON - Crée un bouton scindé. Un bouton scindé a une flèche déroulante vers le bas $BS_DEFSPLITBUTTON - Crée un bouton scindé qui se comporte comme un bouton de style $BS_PUSHBUTTON, mais qui a également un aspect distinctif. $BS_COMMANDLINK - Crée un bouton de commande de lien $BS_DEFCOMMANDLINK - Crée un bouton de commande de lien qui se comporte comme un bouton de style $BS_PUSHBUTTON. Default: (-1) : aucun style Forced: $WS_CHILD, $WS_TABSTOP, $WS_VISIBLE, $BS_NOTIFY |
$iExStyle | [optionnel] Styles étendus du contrôle. Ils correspondent aux constantes standards $WS_EX_*. Voir Table des Styles étendus. |
Succès: | Retourne le handle du contrôle Button. |
Échec: | Retourne 0. |
Les constantes ci-dessus nécessitent #include <ButtonConstants.au3>.
Cette fonction est destinée aux utilisateurs avancés et pour apprendre comment fonctionne le contrôle.
#include <GuiButton.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Global $g_hBtn, $g_hRdo, $g_hChk, $g_idMemo ; Notez que l'ID de contrôle de ces boutons ne peut PAS être lu avec GUICtrlRead Example() Func Example() Local $hGUI $hGUI = GUICreate("Buttons", 400, 400) $g_idMemo = GUICtrlCreateEdit("", 119, 10, 276, 374, $WS_VSCROLL) GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New") $g_hBtn = _GUICtrlButton_Create($hGUI, "Button1", 10, 10, 90, 50) $g_hRdo = _GUICtrlButton_Create($hGUI, "Radio1", 10, 60, 90, 50, $BS_AUTORADIOBUTTON) $g_hChk = _GUICtrlButton_Create($hGUI, "Check1", 10, 120, 90, 50, $BS_AUTO3STATE) GUIRegisterMsg($WM_COMMAND, "WM_COMMAND") GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") GUISetState(@SW_SHOW) MemoWrite("$g_hBtn handle: " & $g_hBtn) MemoWrite("$g_hRdo handle: " & $g_hRdo) MemoWrite("$g_hChk handle: " & $g_hChk & @CRLF) 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 Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $iMsg, $wParam Local Const $BCN_HOTITEMCHANGE = -1249 Local $tNMBHOTITEM = DllStructCreate("hwnd hWndFrom;int IDFrom;int Code;dword dwFlags", $lParam) Local $nNotifyCode = DllStructGetData($tNMBHOTITEM, "Code") Local $nID = DllStructGetData($tNMBHOTITEM, "IDFrom") Local $hCtrl = DllStructGetData($tNMBHOTITEM, "hWndFrom") Local $iFlags = DllStructGetData($tNMBHOTITEM, "dwFlags") Local $sText = "" Switch $nNotifyCode Case $BCN_HOTITEMCHANGE ; Win XP et ultérieur If BitAND($iFlags, 0x10) = 0x10 Then $sText = "$BCN_HOTITEMCHANGE - En entrant: " & @CRLF ElseIf BitAND($iFlags, 0x20) = 0x20 Then $sText = "$BCN_HOTITEMCHANGE - En quittant: " & @CRLF EndIf MemoWrite($sText & _ "-----------------------------" & @CRLF & _ "WM_NOTIFY - Infos:" & @CRLF & _ "-----------------------------" & @CRLF & _ "Code" & @TAB & ":" & $nNotifyCode & @CRLF & _ "CtrlID" & @TAB & ":" & $nID & @CRLF & _ "CtrlHWnd:" & $hCtrl & @CRLF & _ _GUICtrlButton_GetText($hCtrl) & @CRLF) EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_NOTIFY ; Réaction à un clic de bouton Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $iMsg Local $nNotifyCode = BitShift($wParam, 16) Local $nID = BitAND($wParam, 0x0000FFFF) Local $hCtrl = $lParam Local $sText = "" Switch $hCtrl Case $g_hBtn, $g_hRdo, $g_hChk Switch $nNotifyCode Case $BN_CLICKED $sText = "$BN_CLICKED" & @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 MemoWrite($sText & _ "-----------------------------" & @CRLF & _ "WM_COMMAND - Infos:" & @CRLF & _ "-----------------------------" & @CRLF & _ "Code" & @TAB & ":" & $nNotifyCode & @CRLF & _ "CtrlID" & @TAB & ":" & $nID & @CRLF & _ "CtrlHWnd:" & $hCtrl & @CRLF & _ _GUICtrlButton_GetText($hCtrl) & @CRLF) Return 0 ; Seulement pour un test de clic sur le bouton EndSwitch ; Traite les commandes de message interne par défaut. ; Vous pouvez également compléter la fin de ligne. ; !!! Mais seulement Return (sans aucune valeur) ne traitera pas ; le message par défaut AutoIt3 dans le futur !!! Return $GUI_RUNDEFMSG EndFunc ;==>WM_COMMAND