UDF > GUI > GuiButton >


_GUICtrlButton_Create

Cr�e un contr�le Button

#include <GuiButton.au3>
_GUICtrlButton_Create ( $hWnd, $sText, $iX, $iY, $iWidth, $iHeight [, $iStyle = -1 [, $iExStyle = -1]] )

Param�tres

$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.

Valeur de retour

Succ�s: Retourne le handle du contr�le Button.
�chec: Retourne 0.

Remarques

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.

En relation

_GUICtrlButton_Destroy

Exemple

#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