Funktionreferenz


_GUICtrlRebar_Create

Beschreibung anzeigen in

Erstellt ein Rebar-Control

#include <GuiRebar.au3>
_GUICtrlRebar_Create ( $hWnd [, $iStyles = 0x513] )

Parameter

$hWnd Handle zum Parent- oder Eigner-Fenster
$iStyles [optional] Rebar-Controls unterstützen eine Vielzahl von Control-Stilen in Verbindung mit den Standard-Fensterstilen:
    $RBS_AUTOSIZE - Version 4.71. Das Rebar-Control ändert automatisch die Anordnung der Gruppen, wenn sich die Größe oder Position des Controls ändert.
        Eine $RBN_AUTOSIZE-Nachricht wird gesendet, wenn dies auftritt.
    $RBS_BANDBORDERS - Version 4.71. Das Rebar-Control zeigt begrenzende Linien an, um angrenzende Gruppen abzugrenzen.
    $RBS_DBLCLKTOGGLE - Version 4.71. Die ReBar-Gruppe wird zwischen maximiert und minimiert umschalten, wenn der User die Gruppe doppelklickt.
        Ohne diesen Stil wird zwischen dem maximierten und minimierten Status umgeschalten, wenn der User einen einfachen Klick auf die Gruppe durchführt.
    $RBS_FIXEDORDER - Version 4.70. Das Rebar-Control zeigt die Gruppen immer in der gleichen Reihenfolge an. Man kann Gruppen in den verschiedenen Reihen verschieben, aber die Reihenfolge der Gruppen bleibt gleich.
    $RBS_REGISTERDROP - Version 4.71. Das Rebar-Control erstellt $RBN_GETOBJECT-Nachrichten, wenn ein Objekt über eine Gruppe im Control gezogen wird.
    $RBS_TOOLTIPS - Version 4.71. Noch nicht unterstützt.
    $RBS_VARHEIGHT - Version 4.71. Das Rebar-Control zeigt, wenn möglich, Gruppen in der minimal erforderlichen Höhe an.
        Ohne diesen Stil zeigt das Rebar-Control alle Gruppen in der gleichen Höhe an (durch Verwendung der Höhe der größten sichtbaren Gruppe, um die Höhe der anderen Gruppen zu ermitteln).
    $RBS_VERTICALGRIPPER - Version 4.71. Der Verschiebebalken wird in einem vertikalen Rebar-Control vertikal anstatt horizontal dargestellt.
        Dieser Stil wird für Rebar-Controls, die den Stil $CCS_VERT nicht haben, ignoriert.
    $CCS_LEFT - Version 4.70. Bewirkt, dass das Control vertikal auf der linken Seite des Parent-Fensters dargestellt wird
    $CCS_NODIVIDER - Verhindert die Darstellung eines zwei Pixel großen Trennstriches, der oben auf das Control gezeichnet wird.
    $CCS_RIGHT - Version 4.70. Bewirkt, dass das Control vertikal auf der rechten Seite des Parent-Fensters dargestellt wird.
    $CCS_VERT - Version 4.70. Bewirkt, dass das Control vertikal dargestellt wird.

Standard: $CCS_TOP, $RBS_VARHEIGHT
Erzwungen: $WS_CHILD, $WS_VISIBLE, $WS_CLIPCHILDREN, $WS_CLIPSIBLINGS

Rückgabewert

Erfolg: das Handle zu dem Rebar-Control
Fehler: Setzt das @error Flag auf ungleich null

Bemerkungen

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

Verwandte Funktionen

_GUICtrlRebar_Destroy

Beispiel

#include <Extras\WM_NOTIFY.au3>
#include <GuiComboBox.au3>
#include <GUIConstantsEx.au3>
#include <GuiDateTimePicker.au3>
#include <GuiEdit.au3>
#include <GuiReBar.au3>
#include <GuiToolbar.au3>
#include <WinAPIConstants.au3>
#include <WindowsConstants.au3>

Global $hReBar

Example()

Func Example()
    Local $hGui = GUICreate("Rebar: Erstellen (v" & @AutoItVersion & ")", 400, 396, -1, -1, BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU, $WS_MAXIMIZEBOX))

    _WM_NOTIFY_Register()

    ; Erstellt ein Rebar-Control
    $hReBar = _GUICtrlRebar_Create($hGui, BitOR($CCS_TOP, $WS_BORDER, $RBS_VARHEIGHT, $RBS_AUTOSIZE, $RBS_BANDBORDERS))

    ; Erstellt eine Toolbar
    Local $hToolbar = _GUICtrlToolbar_Create($hGui, BitOR($TBSTYLE_FLAT, $CCS_NORESIZE, $CCS_NOPARENTALIGN))

    ; Fügt der Toolbar die Standard-Systembitmaps hinzu
    Switch _GUICtrlToolbar_GetBitmapFlags($hToolbar)
        Case 0
            _GUICtrlToolbar_AddBitmap($hToolbar, 1, -1, $IDB_STD_SMALL_COLOR)
        Case 2
            _GUICtrlToolbar_AddBitmap($hToolbar, 1, -1, $IDB_STD_LARGE_COLOR)
    EndSwitch

    ; Fügt der Toolbar einige Standard-Buttons hinzu
    Local Enum $e_idNew = 1000, $e_idOpen, $e_idSave, $idHelp
    _GUICtrlToolbar_AddButton($hToolbar, $e_idNew, $STD_FILENEW)
    _GUICtrlToolbar_AddButton($hToolbar, $e_idOpen, $STD_FILEOPEN)
    _GUICtrlToolbar_AddButton($hToolbar, $e_idSave, $STD_FILESAVE)
    _GUICtrlToolbar_AddButtonSep($hToolbar)
    _GUICtrlToolbar_AddButton($hToolbar, $idHelp, $STD_HELP)

    ; Erstellt eine Combobox
    Local $hCombo = _GUICtrlComboBox_Create($hGui, "", 0, 0, 120)

    _GUICtrlComboBox_BeginUpdate($hCombo)
    _GUICtrlComboBox_AddDir($hCombo, @WindowsDir & "\*.exe")
    _GUICtrlComboBox_EndUpdate($hCombo)

    ; Erstellt ein DTP (Kalender-Control)
    Local $hDTP = _GUICtrlDTP_Create($hGui, 0, 0, 190)

    ; Erstellt eine Inputbox
;~  $idInput = GUICtrlCreateInput("Eingabebox", 0, 0, 120, 20)
    Local $hInput = _GUICtrlEdit_Create($hGui, "Eingabebox", 0, 0, 120, 20)

    ; Voreinstellung für _AddBand ist anhängen

    ; Fügt eine neue Gruppe mit der Combobox in die Rebar ein
    _GUICtrlRebar_AddBand($hReBar, $hCombo, 120, 200, "Dir *.exe")

    ; Fügt am Ende der Rebar eine neue Gruppe mit dem DTP (Kalender-Control) ein
    _GUICtrlRebar_AddBand($hReBar, $hDTP, 120)

    ; Fügt eine Gruppe mit der Toolbar am Anfang der Rebar ein
    _GUICtrlRebar_AddToolBarBand($hReBar, $hToolbar, "", 0)

    ; Fügt am Ende der Rebar eine Gruppe mit dem Input-Control ein
;~  _GUICtrlRebar_AddBand($hReBar, GUICtrlGetHandle($idInput), 120, 200, "Name:")
    _GUICtrlRebar_AddBand($hReBar, $hInput, 120, 200, "Name:")

    Local $idBtnExit = GUICtrlCreateButton("Beenden", 150, 360, 100, 25)
    GUISetState(@SW_SHOW)

    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE, $idBtnExit
                Exit
        EndSwitch
    WEnd
EndFunc   ;==>Example

Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg, $wParam
    Local $tNMHDR = DllStructCreate($tagNMHDR, $lParam)
    Local $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    Local $iCode = DllStructGetData($tNMHDR, "Code")
    Switch $hWndFrom
        Case $hReBar
            Switch $iCode
                Case $RBN_AUTOBREAK
                    ; Meldet dem Parent der ReBar, dass ein Umbruch in der Leiste erscheinen soll. Der Parent entscheidet, ob der Umbruch ausgeführt wird.
                    _WM_NOTIFY_DebugEvent("$RBN_AUTOBREAK", $tagNMREBARAUTOBREAK, $lParam, "IDFrom,,uBand,wID,lParam,uMsg,fStyleCurrent,fAutoBreak")
                    ; Rückgabewert wird nicht benutzt
                Case $RBN_AUTOSIZE
                    ; Wird vom Rebar-Control gesendet, wenn es mit $RBS_AUTOSIZE erstellt wurde und sich die Größe ändert
                    _WM_NOTIFY_DebugEvent("$RBN_AUTOSIZE", $tagNMRBAUTOSIZE, $lParam, "IDFrom,,fChanged,TargetLeft,TargetTop,TargetRight,TargetBottom,,ActualLeft,ActualTop,ActualRight,ActualBottom")
                    ; Rückgabewert wird nicht benutzt
                Case $RBN_BEGINDRAG
                    ; Wird vom Rebar-Control gesendet, wenn der Benutzer die Rebar zieht
                    _WM_NOTIFY_DebugEvent("$RBN_BEGINDRAG", $tagNMREBAR, $lParam, "IDFrom,,dwMask,uBand,fStyle,wID,lParam")
                    Return 0 ; Um der Rebar zu erlauben, die Zieh-Operation fortzusetzen
;~                  Return 1 ; <> 0, um die Zieh-Operation abzubrechen
                Case $RBN_CHEVRONPUSHED
                    ; Wird vom Rebar-Control gesendet, wenn ein Eckwinkel gedrückt wird
                    ; Wenn eine Anwendung diese Nachricht empfängt, ist sie für die Anzeige eines Popup-Menüs mit Einträgen für jedes nicht angezeigte Werkzeug der Palette verantwortlich.
                    ; Mit Hilfe des rc-Mitglieds der NMREBARCHEVRON-Struktur kann die korrekte Position für das Popup-Menü ermittelt werden.
                    _WM_NOTIFY_DebugEvent("$RBN_CHEVRONPUSHED", $tagNMREBARCHEVRON, $lParam, "IDFrom,,uBand,wID,lParam,Left,Top,Right,lParamNM")
                    ; Rückgabewert wird nicht benutzt
                Case $RBN_CHILDSIZE
                    ; Wird vom Rebar-Control gesendet, wenn die Größe eines Child-Fensters der Gruppe geändert wird
                    _WM_NOTIFY_DebugEvent("$RBN_CHILDSIZE", $tagNMREBARCHILDSIZE, $lParam, "IDFrom,,uBand,wID,CLeft,CTop,CRight,CBottom,BandLeft,,BTop,BRight,BBottom")
                    ; Rückgabewert wird nicht benutzt
                Case $RBN_DELETEDBAND
                    ; Wird vom Rebar-Control gesendet, nachdem eine Gruppe gelöscht wurde
                    _WM_NOTIFY_DebugEvent("$RBN_DELETEDBAND", $tagNMREBAR, $lParam, "IDFrom,,dwMask,uBand,fStyle,wID,lParam")
                    ; Rückgabewert wird nicht benutzt
                Case $RBN_DELETINGBAND
                    ; Wird vom Rebar-Control gesendet, wenn eine Gruppe gerade gelöscht wird
                    _WM_NOTIFY_DebugEvent("$RBN_DELETINGBAND", $tagNMREBAR, $lParam, "IDFrom,,dwMask,uBand,fStyle,wID,lParam")
                    ; Rückgabewert wird nicht benutzt
                Case $RBN_ENDDRAG
                    ; Wird vom Rebar-Control gesendet, wenn der Benutzer das Ziehen einer Gruppe stoppt
                    _WM_NOTIFY_DebugEvent("$RBN_ENDDRAG", $tagNMREBAR, $lParam, "IDFrom,,dwMask,uBand,fStyle,wID,lParam")
                    ; Rückgabewert wird nicht benutzt
                Case $RBN_GETOBJECT
                    ; Wird vom Rebar-Control gesendet, das mit dem Stil $RBS_REGISTERDROP erstellt wurde, wenn ein Objekt über eine Gruppe gezogen wird
                    _WM_NOTIFY_DebugEvent("$RBN_GETOBJECT", $tagNMOBJECTNOTIFY, $lParam, "IDFrom,,Item,piid,pObject,Result")
                    ; Rückgabewert wird nicht benutzt
                Case $RBN_HEIGHTCHANGE
                    ; Wird vom Rebar-Control gesendet, wenn seine Höhe geändert wurde
                    ; Rebar-Controls mit dem Stil $CCS_VERT senden diese Nachricht, wenn die Breite geändert wurde
                    _WM_NOTIFY_DebugEvent("$RBN_HEIGHTCHANGE", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
                    ; Rückgabewert wird nicht benutzt
                Case $RBN_LAYOUTCHANGED
                    ; Wird vom Rebar-Control gesendet, wenn der Benutzer das Layout der Gruppen ändert
                    _WM_NOTIFY_DebugEvent("$RBN_LAYOUTCHANGED", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
                    ; Rückgabewert wird nicht benutzt
                Case $RBN_MINMAX
                    ; Wird vom Rebar-Control gesendet, bevor eine Gruppe maximiert oder minimiert wird
                    _WM_NOTIFY_DebugEvent("$RBN_MINMAX", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
;~                  Return 1 ; <> 0, um die Änderung zu verhindern
                    Return 0 ; Erlaubt die Änderung
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_NOTIFY