Funktionreferenz


_GUICtrlToolbar_Create

Beschreibung anzeigen in

Erstellt ein Toolbar-Control

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

Parameter

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

Rückgabewert

Erfolg: Handle zu dem Toolbar-Control.
Fehler: 0.

Bemerkungen

- - - - - - - - Erklärung der Controls - - - - - - - -

Verwandte Funktionen

_GUICtrlToolbar_Destroy

Beispiel

#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