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