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