Erstellt eine Statusbar
#include <GuiStatusBar.au3>
_GUICtrlStatusBar_Create ( $hWnd [, $vPartEdge = -1 [, $vPartText = "" [, $iStyles = -1 [, $iExStyles = 0x00000000]]]] )
| $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. |
| Erfolg: | das Handle des Controls |
| Fehler: | 0, @error wird eventuell gesetzt (siehe 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 - - - - - - - -
#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
#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
#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
#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
#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
#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
#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