UDF > GUI > GuiToolbar >


_GUICtrlToolbar_Create

Crée un contrôle ToolBar - barre d'outils

#include <GuiToolbar.au3>
_GUICtrlToolbar_Create ( $hWnd [, $iStyle = 0x00000800 [, $iExStyle = 0x00000000]] )

Paramètres

$hWnd Handle du parent ou du propriétaire de la fenêtre
$iStyle [optionnel] Styles du contrôle:
    $TBSTYLE_ALTDRAG - Permet aux utilisateurs de modifier la position d'un bouton de la barre d'outils en le faisant glisser tout en maintenant la touche ALT enfoncée.
        Si ce style n'est pas spécifié, l'utilisateur doit appuyer sur la touche SHIFT tout en faisant glisser un bouton.
        Notez que le style de $CCS_ADJUSTABLE doit être spécifiée pour permettre aux boutons de la barre d'outils d'être glissés.
    $TBSTYLE_CUSTOMERASE - Génère des messages $NM_CUSTOMDRAW lorsque la barre d'outils traite les messages $WM_ERASEBKGND
    $TBSTYLE_FLAT - Crée une barre d'outils sans relief
    $TBSTYLE_LIST - Crée une barre d'outils sans relief avec le texte du bouton à droite de l'image bitmap
    $TBSTYLE_REGISTERDROP - Génère des messages de notification $TBN_GETOBJECT pour demander les objets cibles où déposer lorsque le curseur passe au-dessus des boutons de la barre d'outils.
    $TBSTYLE_TOOLTIPS - Crée un contrôle info-bulle que l'application peut utiliser pour afficher un texte descriptif des boutons de la barre d'outils.
    $TBSTYLE_TRANSPARENT - Crée une barre d'outils transparente, mais les boutons ne le sont pas.
        Le texte d'un bouton apparaît sous le bitmap du bouton. Pour éviter des problèmes de peinture du contrôle, ce style doit être défini avant que le contrôle de barre d'outils devienne visible.
    $TBSTYLE_WRAPABLE - Crée une barre d'outils qui peut avoir plusieurs lignes de boutons.
        Les boutons de la barre d'outils peuvent passer à la ligne suivante lorsque la barre d'outils devient trop étroite pour y inclure tous les boutons sur la même ligne.
        Lorsque la barre d'outils est coupée, la rupture se produit soit sur le séparateur le plus à droite, soit sur le bouton le plus à droite s'il n'y a pas de séparateurs sur la barre.
        Ce style doit être défini pour afficher un contrôle de barre d'outils verticale lorsque la barre d'outils fait partie d'un contrôle Rebar vertical.

Par défaut: $TBSTYLE_FLAT
Forçé: $WS_CHILD, $WS_CLIPSIBLINGS, $WS_VISIBLE
$iExStyle [optionnel] Styles étendus du contrôle:
    $TBSTYLE_EX_DRAWDDARROWS - Permet aux boutons d'avoir une flèche déroulante séparé. Les boutons qui ont le style $BTNS_DROPDOWN seront représentés par une flèche déroulante dans une section distincte, à la droite du bouton.
        Si la flèche est cliquée, seule la partie de la flèche du bouton est enfoncé, et le contrôle de la barre d'outils enverra la notification $TBN_DROPDOWN pour demander à l'application d'afficher le menu déroulant.
        Si la partie principale du bouton est cliquée, le contrôle barre d'outils envoie un message $WM_COMMAND avec l'ID du bouton.
    $TBSTYLE_EX_HIDECLIPPEDBUTTONS - Masque les boutons partiellement coupées
    $TBSTYLE_EX_DOUBLEBUFFER - Définit un double tampon pour la barre d'outils
    $TBSTYLE_EX_MIXEDBUTTONS - Permet de définir le texte pour tous les boutons, mais seulement l'afficher pour les boutons avec le style $BTNS_SHOWTEXT.
        Le style $TBSTYLE_LIST doit également être définie.
        Normalement, quand un bouton n'affiche pas de texte, vous devez gérer $TBN_GETINFOTIP pour afficher une info-bulle.
        Avec le style étendu $TBSTYLE_EX_MIXEDBUTTONS, le texte qui est défini mais non affiché sur un bouton sera automatiquement utilisé comme texte d'info-bulle du bouton.
        Vous devez gérer $TBN_GETINFOTIP si vous avez besoin de plus de flexibilité en spécifiant le texte de l'info-bulle.

Valeur de retour

Succès: Retourne le handle du contrôle de la barre d'outils.
Échec: Retourne 0.

En relation

_GUICtrlToolbar_Destroy

Exemple

#include <GUIConstantsEx.au3>
#include <GuiToolbar.au3>
#include <WinAPIConstants.au3>
#include <WindowsConstants.au3>

Global $g_hToolbar, $g_idMemo
Global $g_iItem ; Command identifier of the button associated with the notification.
Global Enum $e_idNew = 1000, $e_idOpen, $e_idSave, $e_idHelp

Example()

Func Example()
    Local $hGUI, $aSize

    ; Crée une GUI
    $hGUI = GUICreate("Toolbar", 600, 400)
    $g_hToolbar = _GUICtrlToolbar_Create($hGUI)
    $aSize = _GUICtrlToolbar_GetMaxSize($g_hToolbar)

    $g_idMemo = GUICtrlCreateEdit("", 2, $aSize[1] + 20, 596, 396 - ($aSize[1] + 20), $WS_VSCROLL)
    GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New")
    GUISetState(@SW_SHOW)
    GUIRegisterMsg($WM_NOTIFY, "_WM_NOTIFY")

    ; Ajoute des bitmaps système standards
    _GUICtrlToolbar_AddBitmap($g_hToolbar, 1, -1, $IDB_STD_LARGE_COLOR)

    ; Ajoute des boutons
    _GUICtrlToolbar_AddButton($g_hToolbar, $e_idNew, $STD_FILENEW)
    _GUICtrlToolbar_AddButton($g_hToolbar, $e_idOpen, $STD_FILEOPEN)
    _GUICtrlToolbar_AddButton($g_hToolbar, $e_idSave, $STD_FILESAVE)
    _GUICtrlToolbar_AddButtonSep($g_hToolbar)
    _GUICtrlToolbar_AddButton($g_hToolbar, $e_idHelp, $STD_HELP)

    ; Boucle jusqu'à ce que l'utilisateur quitte.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc   ;==>Example

; Ecrit un message dans le contrôle memo
Func MemoWrite($sMessage = "")
    GUICtrlSetData($g_idMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite

; Gestionnaire d'événements WM_NOTIFY
Func _WM_NOTIFY($hWndGUI, $iMsgID, $wParam, $lParam)
    #forceref $hWndGUI, $iMsgID, $wParam
    Local $tNMHDR, $hWndFrom, $iCode, $iNew, $iFlags, $iOld
    Local $tNMTBHOTITEM
    $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
    $hWndFrom = DllStructGetData($tNMHDR, "hWndFrom")
    $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
        Case $g_hToolbar
            Switch $iCode
                Case $NM_LDOWN
                    MemoWrite("$NM_LDOWN: Clicked Item: " & $g_iItem & " at index: " & _GUICtrlToolbar_CommandToIndex($g_hToolbar, $g_iItem))
                    
                Case $TBN_HOTITEMCHANGE
                    $tNMTBHOTITEM = DllStructCreate($tagNMTBHOTITEM, $lParam)
                    $iOld = DllStructGetData($tNMTBHOTITEM, "idOld")
                    $iNew = DllStructGetData($tNMTBHOTITEM, "idNew")
                    $g_iItem = $iNew
                    $iFlags = DllStructGetData($tNMTBHOTITEM, "dwFlags")
                    If BitAND($iFlags, $HICF_LEAVING) = $HICF_LEAVING Then
                        MemoWrite("$HICF_LEAVING: " & $iOld)
                    Else
                        Switch $iNew
                            Case $e_idNew
                                MemoWrite("$TBN_HOTITEMCHANGE: $e_idNew")
                    
                            Case $e_idOpen
                                MemoWrite("$TBN_HOTITEMCHANGE: $e_idOpen")
                    
                            Case $e_idSave
                                MemoWrite("$TBN_HOTITEMCHANGE: $e_idSave")
                    
                            Case $e_idHelp
                                MemoWrite("$TBN_HOTITEMCHANGE: $idHelp")
                    
                        EndSwitch
                    EndIf
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>_WM_NOTIFY