Erstellt ein Toolbar-Control
#include <GuiToolBar.au3>
_GUICtrlToolbar_Create ( $hWnd [, $iStyle = 0x00000800 [, $iExStyle = 0x00000000]] )
$hWnd | Handle zum Parent- oder Eigner-Fenster |
$iStyle | [optional] Stile des Controls: $TBSTYLE_ALTDRAG - Erlaubt es dem User, die Position der Toolbar Buttons durch ziehen und drücken der ALT Taste zu ändern. Falls dieser Stil nicht festgelegt ist, muss der Benutzer die SHIFT Taste während dem Ziehen drücken. Es ist zu beachten, dass der $CCS_ADJUSTABLE Stil festgelegt sein muss, um das Ziehen der Toolbar Buttons zu aktivieren. $TBSTYLE_CUSTOMERASE - Erstellt $NM_CUSTOMDRAW Nachrichten, wenn die Toolbar $WM_ERASEBKGND Nachrichten enthält $TBSTYLE_FLAT - Erstellt eine flache Toolbar (2D Optik) $TBSTYLE_LIST - Erstellt eine flache Toolbar mit dem Buttontext rechts von der Bitmap $TBSTYLE_REGISTERDROP - Verursacht $TBN_GETOBJECT Meldungen, um das "Drop"-Ziel-Objekt anzufordern, wenn sich der Cursor über den Toolbar Buttons befindet. $TBSTYLE_TOOLTIPS - Erstellt ein ToolTip-Control, so dass eine Anwendung eine Beschreibung für die Buttons in der Toolbar darstellen kann. $TBSTYLE_TRANSPARENT - Erstellt eine transparente Toolbar. In einer transparenten Toolbar ist zwar die Toolbar transparent, aber die Buttons nicht. Der Button Text erscheint unter den Button Bitmaps. Um Probleme beim Neuzeichnen zu vermeiden, sollte dieser Stil gesetzt werden, bevor das Toolbar-Control sichtbar gemacht wird. $TBSTYLE_WRAPABLE - Erstellt eine Toolbar, welche mehrere Zeilen mit Buttons haben kann. Toolbar Buttons können in die nächste Zeile "umgebrochen" werden wenn es in der Toolbar zwischen den Buttons zu eng wird. Wenn die Toolbar umgebrochen wird, wird der Umbruch entweder beim Trenner, der am weitesten rechts ist, oder falls kein Trenner vorhanden ist, der Button der am weitesten rechts ist, durchgeführt. Dieser Stil muss gesetzt werden, um eine vertikales Toolbar-Control zu setzen, wenn die Toolbar Teil eines vertikalen Rebar-Controls ist. Standard: $TBSTYLE_FLAT Erzwungen: $WS_CHILD, $WS_CLIPSIBLINGS, $WS_VISIBLE |
$iExStyle | [optional] erweiterte Stile des Controls: $TBSTYLE_EX_DRAWDDARROWS - Erlaubt es, dass Buttons einen separaten Dropdown Pfeil haben. Buttons die den $BTNS_DROPDOWN Stil haben, werden mit einem Dropdown Pfeil rechts vom Button in einem separaten Abschnitt neu gezeichnet. Falls der Pfeil angeklickt wird, wird nur der Button abgesenkt und das Toolbar-Control sendet eine $TBN_DROPDOWN Nachricht um ein Dropdown Menü darzustellen. Falls der Hauptbereich des Buttons angeklickt wird, sendet das Toolbar-Control eine $WM_COMMAND Nachricht mit den Button-IDs. $TBSTYLE_EX_HIDECLIPPEDBUTTONS - Versteckt teilweise ausgeschnittene Buttons $TBSTYLE_EX_DOUBLEBUFFER - Veranlasst, dass die Toolbar doppelt gepuffert wird $TBSTYLE_EX_MIXEDBUTTONS - Erlaubt es, Text für alle Buttons zu setzen, aber dieser wird nur für Buttons mit dem Stil $BTNS_SHOWTEXT dargestellt. Der $TBSTYLE_LIST Stil muss auch gesetzt sein. Normalerweise muss man, wenn ein Button den Text nicht anzeigt, $TBN_GETINFOTIP aufrufen um einen ToolTip darzustellen. Mit dem erweiterten Stil $TBSTYLE_EX_MIXEDBUTTONS wird der Text, der für den Button gesetzt ist, aber nicht auf Buttons dargestellt wird, automatisch als ToolTip Text verwendet. Man braucht nur $TBN_GETINFOTIP aufzurufen, falls man flexibler in dem festgelegten ToolTip Text sein will. |
Erfolg: | Handle zu dem Toolbar-Control. |
Fehler: | 0. |
- - - - - - - - Erklärung der Controls - - - - - - - -
#include <GUIConstantsEx.au3>
#include <GuiToolbar.au3>
#include <WinAPIConstants.au3>
#include <WindowsConstants.au3>
Global $g_hToolbar, $g_idMemo
Global $g_iItem ; ID des Buttons der mit der Nachricht verknüpft ist
Global Enum $e_idNew = 1000, $e_idOpen, $e_idSave, $e_idHelp
Example()
Func Example()
Local $hGui, $aSize
; Erstellt eine 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")
; Fügt die Standard Systembitmaps hinzu
_GUICtrlToolbar_AddBitmap($g_hToolbar, 1, -1, $IDB_STD_LARGE_COLOR)
; Fügt die Buttons hinzu
_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)
; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst.
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc ;==>Example
; Schreibt eine Nachricht in das Memo
Func MemoWrite($sMessage = "")
GUICtrlSetData($g_idMemo, $sMessage & @CRLF, 1)
EndFunc ;==>MemoWrite
; WM_NOTIFY-Eventhandler
Func _WM_NOTIFY($hWndGUI, $iMsgID, $wParam, $lParam)
#forceref $hWndGUI, $iMsgID, $wParam
Local $tNMHDR, $hwndFrom, $code, $i_idNew, $iFlags, $i_idOld
Local $tNMTBHOTITEM
$tNMHDR = DllStructCreate($tagNMHDR, $lParam)
$hwndFrom = DllStructGetData($tNMHDR, "hWndFrom")
$code = DllStructGetData($tNMHDR, "Code")
Switch $hwndFrom
Case $g_hToolbar
Switch $code
Case $NM_LDOWN
;----------------------------------------------------------------------------------------------
MemoWrite("$NM_LDOWN: Angeklicktes Item: " & $g_iItem & " bei Index: " & _GUICtrlToolbar_CommandToIndex($g_hToolbar, $g_iItem))
;----------------------------------------------------------------------------------------------
Case $TBN_HOTITEMCHANGE
$tNMTBHOTITEM = DllStructCreate($tagNMTBHOTITEM, $lParam)
$i_idOld = DllStructGetData($tNMTBHOTITEM, "idOld")
$i_idNew = DllStructGetData($tNMTBHOTITEM, "idNew")
$g_iItem = $i_idNew
$iFlags = DllStructGetData($tNMTBHOTITEM, "dwFlags")
If BitAND($iFlags, $HICF_LEAVING) = $HICF_LEAVING Then
MemoWrite("$HICF_LEAVING: " & $i_idOld)
Else
Switch $i_idNew
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: $e_idHelp")
;----------------------------------------------------------------------------------------------
EndSwitch
EndIf
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>_WM_NOTIFY