Crée un contrôle ToolBar - barre d'outils
#include <GuiToolbar.au3>
_GUICtrlToolbar_Create ( $hWnd [, $iStyle = 0x00000800 [, $iExStyle = 0x00000000]] )
$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. |
Succès: | Retourne le handle du contrôle de la barre d'outils. |
Échec: | Retourne 0. |
#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