Funktionreferenz


_GUICtrlStatusBar_Create

Beschreibung anzeigen in

Erstellt eine Statusbar

#include <GuiStatusBar.au3>
_GUICtrlStatusBar_Create ( $hWnd [, $vPartEdge = -1 [, $vPartText = "" [, $iStyles = -1 [, $iExStyles = 0x00000000]]]] )

Parameter

$hWnd Handle zum Elternfenster
$vPartEdge [optional] Breite eines oder mehrerer Abschnitte. Für mehr als einen Abschnitt ist ein 0-basierendes Array in folgendem Format anzugeben:
    $vPartEdge[0] - Rechte Kante des Abschnitts #1
    $vPartEdge[1] - Rechte Kante des Abschnitts #2
    $vPartEdge[n] - Rechte Kante des Abschnitts n
$vPartText [optional] Text eines oder mehrerer Abschnitte. Für mehr als einen Abschnitt ist ein 0-basierendes Array in folgendem Format anzugeben:
    $vPartText[0] - Erster Abschnitt
    $vPartText[1] - Zweiter Abschnitt
    $vPartText[n] - Letzter Abschnitt
$iStyles [optional] Stile des Controls:
    $SBARS_SIZEGRIP - Das Statusbar-Control beinhaltet einen "Griff" am rechten Ende der Statusbar mit der die Größe des Elternfensters verändert werden kann
    $SBARS_TOOLTIPS - Die Statusbar besitzt Tooltips
    Erzwungen: $WS_CHILD, $WS_VISIBLE
$iExStyles [optional] erweiterte Stile des Controls. Diese entsprechen den Standard $WS_EX_* Konstanten. Siehe Tabelle Erweiterte Stile.

Rückgabewert

Erfolg: das Handle des Controls
Fehler: 0, @error wird eventuell gesetzt (siehe Bemerkungen)

Bemerkungen

Wenn sich das von $hWnd referenzierte Steuerelement nicht im selben Prozess befindet, wird @error auf 4 gesetzt.

Falls GUICtrlCreateMenu() verwendet wird, dann ist _GUICtrlStatusBar_Create() nach GUICtrlCreateMenu() zu verwenden.

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

Verwandte Funktionen

_GUICtrlStatusBar_Destroy

Beispiel

Beispiel 1 : mit Handle zu den GUI-Fenstern

#include "Extras\HelpFileInternals.au3"
#include "Extras\WM_NOTIFY.au3"

#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>

Global $g_hStatus

Example()

Func Example()
    ; Erstellt eine GUI
    Local $hGUI = GUICreate("StatusBar: Erzeugen (v" & @AutoItVersion & ")", 400, 300, 100, 100)

    ; Voreinstellung: nur 1 Abschnitt, ohne Text
    Local $g_hStatus = _GUICtrlStatusBar_Create($hGUI)
    $g_hStatus = $hStatus

    ; Erstellt ein Memo Control
    _MemoCreate(2, 8, 444, 259)
    GUISetState(@SW_SHOW)

    Local $aParts[3] = [75, 150, -1]
    _GUICtrlStatusBar_SetParts($hStatus, $aParts)

    _MemoWrite("StatusBar erstellt mit:" & @CRLF & _
            @TAB & "Handle zum GUI Fenster" & @CRLF)

    _WM_NOTIFY_Register($_g_idLst_Memo)

    ; Ermittelt die Randbreite
    _MemoWrite("Horizontale Randbreite ....: " & _GUICtrlStatusBar_GetBordersHorz($g_hStatus))
    _MemoWrite("Vertikale Randbreite ......: " & _GUICtrlStatusBar_GetBordersVert($g_hStatus))
    _MemoWrite("Breite des Rechteckrandes .: " & _GUICtrlStatusBar_GetBordersRect($g_hStatus))
    _MemoWrite("")

    _MemoMsgBoxStatus("", -1, $hGUI) ; Keine weiteren Aktionen, es wird gewartet bis die GUI geschlossen wird.

    ; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete($)
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")
    Local $tinfo
    Switch $hWndFrom
        Case $g_hStatus
            Switch $iCode
                Case $NM_CLICK ; Die linke Maustaste wurde innerhalb des Controls gedrückt
                    _WM_NOTIFY_DebugEvent("$NM_CLICK", $tagNMMOUSE, $lParam, "IDFrom,,ItemSpec,ItemData,X,Y,HitInfo")
                    Return True ; Gibt an, dass der Mausklick behandelt wurde und unterdrückt die Standardverarbeitung des Ereignisses durch das System
;~                  Return FALSE ; Erlaubt die Standardverarbeitung des Mausklicks durch das System
                Case $NM_DBLCLK ; Der Benutzer hat einen Doppelklick mit der linken Maustaste innerhalb des Controls ausgeführt
                    _WM_NOTIFY_DebugEvent("$NM_DBLCLK", $tagNMMOUSE, $lParam, "IDFrom,,ItemSpec,ItemData,X,Y,HitInfo")
                    Return True ; Gibt an, dass der Mausklick behandelt wurde und unterdrückt die Standardverarbeitung des Ereignisses durch das System
;~                  Return FALSE ; Erlaubt die Standardverarbeitung des Mausklicks durch das System
                Case $NM_RCLICK ; Die rechte Maustaste wurde innerhalb des Controls gedrückt
                    _WM_NOTIFY_DebugEvent("$NM_RCLICK", $tagNMMOUSE, $lParam, "IDFrom,,ItemSpec,ItemData,X,Y,HitInfo")
                    Return True ; Gibt an, dass der Mausklick behandelt wurde und unterdrückt die Standardverarbeitung des Ereignisses durch das System
;~                  Return FALSE ; Erlaubt die Standardverarbeitung des Mausklicks durch das System
                Case $NM_RDBLCLK ; Der Benutzer hat einen Doppelklick mit der rechten Maustaste innerhalb des Controls ausgeführt
                    _WM_NOTIFY_DebugEvent("$NM_RDBLCLK", $tagNMMOUSE, $lParam, "IDFrom,,ItemSpec,ItemData,X,Y,HitInfo")
                    Return True ; Gibt an, dass der Mausklick behandelt wurde und unterdrückt die Standardverarbeitung des Ereignisses durch das System
;~                  Return FALSE ; Erlaubt die Standardverarbeitung des Mausklicks durch das System
                Case $SBN_SIMPLEMODECHANGE ; Änderung des einfachen Modus (aufgrund eines $SB_SIMPLE-Ereignisses)
                    _WM_NOTIFY_DebugEvent("$SBN_SIMPLEMODECHANGE", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
                    ; Kein Rückgabewert
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_NOTIFY

Beispiel 2 : Abschnittsbreiten in einem Array von 3 Elementen

#include "Extras\HelpFileInternals.au3"
#include "Extras\WM_NOTIFY.au3"

#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>

Global $g_hMainGUI, $g_hStatus

Example()

Func Example()
    ; Erstellt eine GUI
    Local $hGUI = GUICreate("StatusBar: Erzeugen (v" & @AutoItVersion & ")", 400, 300, 100, 100)

    ; Nur die Abschnitte, keinen Text festlegen
    Local $aParts[3] = [75, 150, -1]
    $g_hStatus = _GUICtrlStatusBar_Create($hGUI, $aParts)

    ; Erstellt ein Memo Control
    _MemoCreate(2, 8, 444, 259)
    GUISetState(@SW_SHOW)

    _MemoWrite("StatusBar erzeugt mit:" & @CRLF & _
            @TAB & "Handle zum Anwendungsfenster," & @CRLF & _
            @TAB & "Abschnittsbreite als Array mit 3 Items," & @CRLF)

    _WM_NOTIFY_Register($_g_idLst_Memo)

    ; Rändergröße ermitteln
    _MemoWrite("Horizontale Randbreite ....: " & _GUICtrlStatusBar_GetBordersHorz($g_hStatus))
    _MemoWrite("Vertikale Randbreite ......: " & _GUICtrlStatusBar_GetBordersVert($g_hStatus))
    _MemoWrite("Breite des Rechteckrandes .: " & _GUICtrlStatusBar_GetBordersRect($g_hStatus))
    _MemoWrite("")

    _MemoMsgBoxStatus("", -1, $hGUI) ; Keine weiteren Aktionen, es wird gewartet bis die GUI geschlossen wird.

    ; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUISetState(@SW_ENABLE, $g_hMainGUI)
    GUIDelete($hGUI)
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")
    Local $tinfo
    Switch $hWndFrom
        Case $g_hStatus
            Switch $iCode
                Case $NM_CLICK ; Die linke Maustaste wurde innerhalb des Controls gedrückt
                    _WM_NOTIFY_DebugEvent("$NM_CLICK", $tagNMMOUSE, $lParam, "IDFrom,,ItemSpec,ItemData,X,Y,HitInfo")
                    Return True ; Gibt an, dass der Mausklick behandelt wurde und unterdrückt die Standardverarbeitung des Ereignisses durch das System
;~                  Return FALSE ; Erlaubt die Standardverarbeitung des Mausklicks durch das System
                Case $NM_DBLCLK ; Der Benutzer hat einen Doppelklick mit der linken Maustaste innerhalb des Controls ausgeführt
                    _WM_NOTIFY_DebugEvent("$NM_DBLCLK", $tagNMMOUSE, $lParam, "IDFrom,,ItemSpec,ItemData,X,Y,HitInfo")
                    Return True ; Gibt an, dass der Mausklick behandelt wurde und unterdrückt die Standardverarbeitung des Ereignisses durch das System
;~                  Return FALSE ; Erlaubt die Standardverarbeitung des Mausklicks durch das System
                Case $NM_RCLICK ; Die rechte Maustaste wurde innerhalb des Controls gedrückt
                    _WM_NOTIFY_DebugEvent("$NM_RCLICK", $tagNMMOUSE, $lParam, "IDFrom,,ItemSpec,ItemData,X,Y,HitInfo")
                    Return True ; Gibt an, dass der Mausklick behandelt wurde und unterdrückt die Standardverarbeitung des Ereignisses durch das System
;~                  Return FALSE ; Erlaubt die Standardverarbeitung des Mausklicks durch das System
                Case $NM_RDBLCLK ; Der Benutzer hat einen Doppelklick mit der rechten Maustaste innerhalb des Controls ausgeführt
                    _WM_NOTIFY_DebugEvent("$NM_RDBLCLK", $tagNMMOUSE, $lParam, "IDFrom,,ItemSpec,ItemData,X,Y,HitInfo")
                    Return True ; Gibt an, dass der Mausklick behandelt wurde und unterdrückt die Standardverarbeitung des Ereignisses durch das System
;~                  Return FALSE ; Erlaubt die Standardverarbeitung des Mausklicks durch das System
                Case $SBN_SIMPLEMODECHANGE ; Änderung des einfachen Modus (aufgrund eines $SB_SIMPLE-Ereignisses)
                    _WM_NOTIFY_DebugEvent("$SBN_SIMPLEMODECHANGE", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
                    ; Kein Rückgabewert
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_NOTIFY

Beispiel 3 : mit Teil-Array und Text-Array

#include "Extras\HelpFileInternals.au3"
#include "Extras\WM_NOTIFY.au3"

#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>

Global $g_hMainGUI, $g_hStatus

Example()

Func Example()
    ; Erstellt eine GUI
    Local $hGUI = GUICreate("StatusBar: Erzeugen (v" & @AutoItVersion & ")", 400, 300, 100, 100)

    ; Legt die Abschnitte und die Texte fest
    Local $aText[3] = ["Linksbündig", @TAB & "Zentriert", @TAB & @TAB & "Rechtsbündig"]
    Local $aParts[3] = [100, 175, -1]
    $g_hStatus = _GUICtrlStatusBar_Create($hGUI, $aParts, $aText)

    ; Erstellt ein Memo Control
    _MemoCreate(2, 8, 444, 259)
    GUISetState(@SW_SHOW)

    _MemoWrite("StatusBar erzeugt mit:" & @CRLF & _
            @TAB & "Handle zum Anwendungsfenster," & @CRLF & _
            @TAB & "Abschnittsbreite als Array mit 3 Items," & @CRLF & _
            @TAB & "Abschnittstexte als Array mit 3 Items," & @CRLF)

    _WM_NOTIFY_Register($_g_idLst_Memo)

    ; Rändergröße ermitteln
    _MemoWrite("Horizontale Randbreite ....: " & _GUICtrlStatusBar_GetBordersHorz($g_hStatus))
    _MemoWrite("Vertikale Randbreite ......: " & _GUICtrlStatusBar_GetBordersVert($g_hStatus))
    _MemoWrite("Breite des Rechteckrandes .: " & _GUICtrlStatusBar_GetBordersRect($g_hStatus))
    _MemoWrite("")

    _MemoMsgBoxStatus("", -1, $hGUI) ; Keine weiteren Aktionen, es wird gewartet bis die GUI geschlossen wird.

    ; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUISetState(@SW_ENABLE, $g_hMainGUI)
    GUIDelete($hGUI)
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 $g_hStatus
            Switch $iCode
                Case $NM_CLICK ; Die linke Maustaste wurde innerhalb des Controls gedrückt
                    _WM_NOTIFY_DebugEvent("$NM_CLICK", $tagNMMOUSE, $lParam, "IDFrom,,ItemSpec,ItemData,X,Y,HitInfo")
                    Return True ; Gibt an, dass der Mausklick behandelt wurde und unterdrückt die Standardverarbeitung des Ereignisses durch das System
;~                  Return FALSE ; Erlaubt die Standardverarbeitung des Mausklicks durch das System
                Case $NM_DBLCLK ; Der Benutzer hat einen Doppelklick mit der linken Maustaste innerhalb des Controls ausgeführt
                    _WM_NOTIFY_DebugEvent("$NM_DBLCLK", $tagNMMOUSE, $lParam, "IDFrom,,ItemSpec,ItemData,X,Y,HitInfo")
                    Return True ; Gibt an, dass der Mausklick behandelt wurde und unterdrückt die Standardverarbeitung des Ereignisses durch das System
;~                  Return FALSE ; Erlaubt die Standardverarbeitung des Mausklicks durch das System
                Case $NM_RCLICK ; Die rechte Maustaste wurde innerhalb des Controls gedrückt
                    _WM_NOTIFY_DebugEvent("$NM_RCLICK", $tagNMMOUSE, $lParam, "IDFrom,,ItemSpec,ItemData,X,Y,HitInfo")
                    Return True ; Gibt an, dass der Mausklick behandelt wurde und unterdrückt die Standardverarbeitung des Ereignisses durch das System
;~                  Return FALSE ; Erlaubt die Standardverarbeitung des Mausklicks durch das System
                Case $NM_RDBLCLK ; Der Benutzer hat einen Doppelklick mit der rechten Maustaste innerhalb des Controls ausgeführt
                    _WM_NOTIFY_DebugEvent("$NM_RDBLCLK", $tagNMMOUSE, $lParam, "IDFrom,,ItemSpec,ItemData,X,Y,HitInfo")
                    Return True ; Gibt an, dass der Mausklick behandelt wurde und unterdrückt die Standardverarbeitung des Ereignisses durch das System
;~                  Return FALSE ; Erlaubt die Standardverarbeitung des Mausklicks durch das System
                Case $SBN_SIMPLEMODECHANGE ; Änderung des einfachen Modus (aufgrund eines $SB_SIMPLE-Ereignisses)
                    _WM_NOTIFY_DebugEvent("$SBN_SIMPLEMODECHANGE", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
                    ; Kein Rückgabewert
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_NOTIFY

Beispiel 4 : mit Abschnittsnummer und Textarray

#include "Extras\HelpFileInternals.au3"
#include "Extras\WM_NOTIFY.au3"

#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>

Global $g_hMainGUI, $g_hStatus

Example()

Func Example()
    ; Erstellt eine GUI
    Local $hGUI = GUICreate("StatusBar: Erzeugen (v" & @AutoItVersion & ")", 400, 300, 100, 100)

    ; Erzeugt Abschnitte, deren Breite auf der übergebenen Endposition des ersten Abschnitts basiert
    Local $aText[3] = ["Linksbündig", @TAB & "Zentriert", @TAB & @TAB & "Rechtsbündig"]
    $g_hStatus = _GUICtrlStatusBar_Create($hGUI, 150, $aText)

    ; Erstellt ein Memo Control
    _MemoCreate(2, 8, 444, 259)
    GUISetState(@SW_SHOW)

    _MemoWrite("StatusBar erzeugt mit:" & @CRLF & _
            @TAB & "Handle zum Anwendungsfenster," & @CRLF & _
            @TAB & "Abschnittsbreite als einzelnen Wert," & @CRLF & _
            @TAB & "Abschnittstexte als Array mit 3 Items," & @CRLF)

    _WM_NOTIFY_Register($_g_idLst_Memo)

    ; Rändergröße ermitteln
    _MemoWrite("Horizontale Randbreite ....: " & _GUICtrlStatusBar_GetBordersHorz($g_hStatus))
    _MemoWrite("Vertikale Randbreite ......: " & _GUICtrlStatusBar_GetBordersVert($g_hStatus))
    _MemoWrite("Breite des Rechteckrandes .: " & _GUICtrlStatusBar_GetBordersRect($g_hStatus))
    _MemoWrite("")

    ; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUISetState(@SW_ENABLE, $g_hMainGUI)
    GUIDelete($hGUI)
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 $g_hStatus
            Switch $iCode
                Case $NM_CLICK ; Die linke Maustaste wurde innerhalb des Controls gedrückt
                    _WM_NOTIFY_DebugEvent("$NM_CLICK", $tagNMMOUSE, $lParam, "IDFrom,,ItemSpec,ItemData,X,Y,HitInfo")
                    Return True ; Gibt an, dass der Mausklick behandelt wurde und unterdrückt die Standardverarbeitung des Ereignisses durch das System
;~                  Return FALSE ; Erlaubt die Standardverarbeitung des Mausklicks durch das System
                Case $NM_DBLCLK ; Der Benutzer hat einen Doppelklick mit der linken Maustaste innerhalb des Controls ausgeführt
                    _WM_NOTIFY_DebugEvent("$NM_DBLCLK", $tagNMMOUSE, $lParam, "IDFrom,,ItemSpec,ItemData,X,Y,HitInfo")
                    Return True ; Gibt an, dass der Mausklick behandelt wurde und unterdrückt die Standardverarbeitung des Ereignisses durch das System
;~                  Return FALSE ; Erlaubt die Standardverarbeitung des Mausklicks durch das System
                Case $NM_RCLICK ; Die rechte Maustaste wurde innerhalb des Controls gedrückt
                    _WM_NOTIFY_DebugEvent("$NM_RCLICK", $tagNMMOUSE, $lParam, "IDFrom,,ItemSpec,ItemData,X,Y,HitInfo")
                    Return True ; Gibt an, dass der Mausklick behandelt wurde und unterdrückt die Standardverarbeitung des Ereignisses durch das System
;~                  Return FALSE ; Erlaubt die Standardverarbeitung des Mausklicks durch das System
                Case $NM_RDBLCLK ; Der Benutzer hat einen Doppelklick mit der rechten Maustaste innerhalb des Controls ausgeführt
                    _WM_NOTIFY_DebugEvent("$NM_RDBLCLK", $tagNMMOUSE, $lParam, "IDFrom,,ItemSpec,ItemData,X,Y,HitInfo")
                    Return True ; Gibt an, dass der Mausklick behandelt wurde und unterdrückt die Standardverarbeitung des Ereignisses durch das System
;~                  Return FALSE ; Erlaubt die Standardverarbeitung des Mausklicks durch das System
                Case $SBN_SIMPLEMODECHANGE ; Änderung des einfachen Modus (aufgrund eines $SB_SIMPLE-Ereignisses)
                    _WM_NOTIFY_DebugEvent("$SBN_SIMPLEMODECHANGE", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
                    ; Kein Rückgabewert
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_NOTIFY

Beispiel 5: mit Teil-Array und Text-Array mit mehreren Elementen

#include "Extras\HelpFileInternals.au3"
#include "Extras\WM_NOTIFY.au3"

#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>

Global $g_hMainGUI, $g_hStatus

Example()

Func Example()
    Local $hGui

    ; Erstellt eine GUI
    Local $hGui = GUICreate("StatusBar: Erzeugen (v" & @AutoItVersion & ")", 400, 300, 100, 100)

    ; Verwendet das längste übergebene Array (in diesem Fall ist das Text-Array das längere)
    Local $aText[3] = ["Linksbündig", @TAB & "Zentriert", @TAB & @TAB & "Rechtsbündig"] ; Abschnittstexte
    Local $aParts[2] = [100, 175] ; Endpositionen der Abschnitte
    $g_hStatus = _GUICtrlStatusBar_Create($hGui, $aParts, $aText)

    ; Erstellt ein Memo-Control
    _MemoCreate(2, 8, 444, 259)

    GUISetState(@SW_SHOW)

    _MemoWrite("StatusBar erzeugt mit:" & @CRLF & @CRLF & _
            @TAB & "Handle zum Anwendungsfenster," & @CRLF & _
            @TAB & "Abschnittsbreite als Array mit 2 Items," & @CRLF & _
            @TAB & "Abschnittstexte als Array mit 3 Items," & @CRLF)

    _WM_NOTIFY_Register($_g_idLst_Memo)

    ; Rändergröße ermitteln
    _MemoWrite("Horizontale Randbreite ....: " & _GUICtrlStatusBar_GetBordersHorz($g_hStatus))
    _MemoWrite("Vertikale Randbreite ......: " & _GUICtrlStatusBar_GetBordersVert($g_hStatus))
    _MemoWrite("Breite des Rechteckrandes .: " & _GUICtrlStatusBar_GetBordersRect($g_hStatus))
    _MemoWrite("")

    _MemoMsgBoxStatus("", -1, $hGUI) ; Keine weiteren Aktionen, es wird gewartet bis die GUI geschlossen wird.

    ; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUISetState(@SW_ENABLE, $g_hMainGUI)
    GUIDelete($hGui)
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 $g_hStatus
            Switch $iCode
                Case $NM_CLICK ; Die linke Maustaste wurde innerhalb des Controls gedrückt
                    _WM_NOTIFY_DebugEvent("$NM_CLICK", $tagNMMOUSE, $lParam, "IDFrom,,ItemSpec,ItemData,X,Y,HitInfo")
                    Return True ; Gibt an, dass der Mausklick behandelt wurde und unterdrückt die Standardverarbeitung des Ereignisses durch das System
;~                  Return FALSE ; Erlaubt die Standardverarbeitung des Mausklicks durch das System
                Case $NM_DBLCLK ; Der Benutzer hat einen Doppelklick mit der linken Maustaste innerhalb des Controls ausgeführt
                    _WM_NOTIFY_DebugEvent("$NM_DBLCLK", $tagNMMOUSE, $lParam, "IDFrom,,ItemSpec,ItemData,X,Y,HitInfo")
                    Return True ; Gibt an, dass der Mausklick behandelt wurde und unterdrückt die Standardverarbeitung des Ereignisses durch das System
;~                  Return FALSE ; Erlaubt die Standardverarbeitung des Mausklicks durch das System
                Case $NM_RCLICK ; Die rechte Maustaste wurde innerhalb des Controls gedrückt
                    _WM_NOTIFY_DebugEvent("$NM_RCLICK", $tagNMMOUSE, $lParam, "IDFrom,,ItemSpec,ItemData,X,Y,HitInfo")
                    Return True ; Gibt an, dass der Mausklick behandelt wurde und unterdrückt die Standardverarbeitung des Ereignisses durch das System
;~                  Return FALSE ; Erlaubt die Standardverarbeitung des Mausklicks durch das System
                Case $NM_RDBLCLK ; Der Benutzer hat einen Doppelklick mit der rechten Maustaste innerhalb des Controls ausgeführt
                    _WM_NOTIFY_DebugEvent("$NM_RDBLCLK", $tagNMMOUSE, $lParam, "IDFrom,,ItemSpec,ItemData,X,Y,HitInfo")
                    Return True ; Gibt an, dass der Mausklick behandelt wurde und unterdrückt die Standardverarbeitung des Ereignisses durch das System
;~                  Return FALSE ; Erlaubt die Standardverarbeitung des Mausklicks durch das System
                Case $SBN_SIMPLEMODECHANGE ; Änderung des einfachen Modus (aufgrund eines $SB_SIMPLE-Ereignisses)
                    _WM_NOTIFY_DebugEvent("$SBN_SIMPLEMODECHANGE", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
                    ; Kein Rückgabewert
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_NOTIFY

Beispiel 6 : mit Teil-Array und Text-Array mit wenigen Elementen

#include "Extras\HelpFileInternals.au3"
#include "Extras\WM_NOTIFY.au3"

#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>

Global $g_hMainGUI, $g_hStatus

Example()

Func Example()
    ; Erstellt eine GUI
    Local $hGUI = GUICreate("StatusBar: Erzeugen (v" & @AutoItVersion & ")", 400, 300, 100, 100)

    ; Verwendet das längste übergebene Array (in diesem Fall ist das Endpositions-Array das längere)
    Local $aText[2] = ["Linksbündig", @TAB & "Zentriert"]
    Local $aParts[3] = [100, 175, -1]
    $g_hStatus = _GUICtrlStatusBar_Create($hGUI, $aParts, $aText)

    ; Erstellt ein Memo Control
    _MemoCreate(2, 8, 444, 259)
    GUISetState(@SW_SHOW)

    _MemoWrite("StatusBar erzeugt mit:" & @CRLF & @CRLF & _
            @TAB & "Handle zum Anwendungsfenster," & @CRLF & _
            @TAB & "Abschnittsbreite als Array mit 3 Items," & @CRLF & _
            @TAB & "Abschnittstexte als Array mit 2 Items," & @CRLF)

    _WM_NOTIFY_Register($_g_idLst_Memo)

    ; Rändergröße ermitteln
    _MemoWrite("Horizontale Randbreite ....: " & _GUICtrlStatusBar_GetBordersHorz($g_hStatus))
    _MemoWrite("Vertikale Randbreite ......: " & _GUICtrlStatusBar_GetBordersVert($g_hStatus))
    _MemoWrite("Breite des Rechteckrandes .: " & _GUICtrlStatusBar_GetBordersRect($g_hStatus))
    _MemoWrite("")

    _MemoMsgBoxStatus("", -1, $hGUI) ; Keine weiteren Aktionen, es wird gewartet bis die GUI geschlossen wird.

    ; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUISetState(@SW_ENABLE, $g_hMainGUI)
    GUIDelete($hGUI)
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 $g_hStatus
            Switch $iCode
                Case $NM_CLICK ; Die linke Maustaste wurde innerhalb des Controls gedrückt
                    _WM_NOTIFY_DebugEvent("$NM_CLICK", $tagNMMOUSE, $lParam, "IDFrom,,ItemSpec,ItemData,X,Y,HitInfo")
                    Return True ; Gibt an, dass der Mausklick behandelt wurde und unterdrückt die Standardverarbeitung des Ereignisses durch das System
;~                  Return FALSE ; Erlaubt die Standardverarbeitung des Mausklicks durch das System
                Case $NM_DBLCLK ; Der Benutzer hat einen Doppelklick mit der linken Maustaste innerhalb des Controls ausgeführt
                    _WM_NOTIFY_DebugEvent("$NM_DBLCLK", $tagNMMOUSE, $lParam, "IDFrom,,ItemSpec,ItemData,X,Y,HitInfo")
                    Return True ; Gibt an, dass der Mausklick behandelt wurde und unterdrückt die Standardverarbeitung des Ereignisses durch das System
;~                  Return FALSE ; Erlaubt die Standardverarbeitung des Mausklicks durch das System
                Case $NM_RCLICK ; Die rechte Maustaste wurde innerhalb des Controls gedrückt
                    _WM_NOTIFY_DebugEvent("$NM_RCLICK", $tagNMMOUSE, $lParam, "IDFrom,,ItemSpec,ItemData,X,Y,HitInfo")
                    Return True ; Gibt an, dass der Mausklick behandelt wurde und unterdrückt die Standardverarbeitung des Ereignisses durch das System
;~                  Return FALSE ; Erlaubt die Standardverarbeitung des Mausklicks durch das System
                Case $NM_RDBLCLK ; Der Benutzer hat einen Doppelklick mit der rechten Maustaste innerhalb des Controls ausgeführt
                    _WM_NOTIFY_DebugEvent("$NM_RDBLCLK", $tagNMMOUSE, $lParam, "IDFrom,,ItemSpec,ItemData,X,Y,HitInfo")
                    Return True ; Gibt an, dass der Mausklick behandelt wurde und unterdrückt die Standardverarbeitung des Ereignisses durch das System
;~                  Return FALSE ; Erlaubt die Standardverarbeitung des Mausklicks durch das System
                Case $SBN_SIMPLEMODECHANGE ; Änderung des einfachen Modus (aufgrund eines $SB_SIMPLE-Ereignisses)
                    _WM_NOTIFY_DebugEvent("$SBN_SIMPLEMODECHANGE", $tagNMHDR, $lParam, "hWndFrom,IDFrom")
                    ; Kein Rückgabewert
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_NOTIFY

Example 3 : StatusBar Create to an External process

#include "Extras\HelpFileInternals.au3"

#include <GuiStatusBar.au3>

Example()

Func Example()
    Local $sFromTo
    Local $hWin = _MemoRunAU3OutProcess($sFromTo)

    Local $hStatus = _MemoCreateOutProcess($hWin, "msctls_statusbar32", 0, $sFromTo)

    _GUICtrlStatusBar_Destroy($hStatus)
    If @error Then _MemoWrite("_GUICtrlStatusBar_Destroy()" & " @error = " & @error & @CRLF & _
            @TAB & "cannot be retrieved by an external process")

    _GUICtrlStatusBar_Create($hWin)
    If @error Then _MemoWrite("_GUICtrlStatusBar_Create()" & " @error = " & @error & @CRLF & _
            @TAB & "cannot be retrieved by an external process")

    _MemoMsgBoxStatus("", Default, $hWin) ; no more action, wait GUI for closing, close also OutProcess GUI

EndFunc   ;==>Example