Erstellt ein Label für die GUI.
GUICtrlCreateLabel ( "text", left, top [, width [, height [, style = -1 [, exStyle = -1]]]] )
text | Der Beschriftungstext. |
left | Die linke Seite des Controls. Wird -1 verwendet, dann wird left mit Hilfe von GUICoordMode berechnet. |
top | Die Oberkante des Controls. Wird -1 verwendet, dann wird top mit Hilfe von GUICoordMode berechnet. |
width | [optional] Die Breite des Controls (Standard: Länge des Textes). |
height | [optional] Die Höhe des Controls (Standard: Höhe des Textes). |
style | [optional] Legt den Stil des Controls fest. Siehe Anhang GUI-Stile für Controls. Standard ( -1) : Keine Erzwungene Stile : $SS_NOTIFY, $SS_LEFT |
exStyle | [optional] Legt den erweiterten Stil des Controls fest. Siehe Tabelle der erweiterten Stile. |
Erfolg: | Die Identifikationsnummer (Control-ID) des neuen Controls. |
Fehler: | 0. |
Um Informationen im Control zu setzen oder zu verändern, siehe GUICtrlUpdate...() Funktionen.
Um weitere Stile zusätzlich zum Standardstil zu verwenden, nutzt man BitOR($GUI_SS_DEFAULT_LABEL, newstyle, ... ).
Um die oben angegebenen Werte verwenden zu können, muss #include <StaticConstants.au3> in das Skript eingefügt werden.
Als Standard für das Verhalten des Controls (bzgl. Größe und/oder Position) bei Größenänderung der GUI gilt $GUI_DOCKAUTO. (Größe und Position werden entsprechend dem neuen Fenster angepasst.)
Mögliche Resizing-Parameter siehe GUICtrlSetResizing.
Der erweiterte Stil $GUI_WS_EX_PARENTDRAG kann verwendet werden, um ein Hauptfenster ohne Titelleiste bewegen zu können (kein $WS_CAPTION Stil in GUICreate()).
Um den Hintergrund transparent zu gestalten, ist GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) zu verwenden.
Wenn man wirklich ein Label erstellen muss, welches andere Controls überlappt, kann man den Stil $WS_CLIPSIBLINGS verwenden.
In der Tat hat das einen kleinen Leistungsnachteil, wie im $WS_CLIPSIBLINGS Forum erwähnt.
- - - - - - - - Erklärung der Controls - - - - - - - -
GUICoordMode (Option), GUICtrlUpdate..., GUIGetMsg
#include <GUIConstantsEx.au3>
Example()
Func Example()
Local $iWidthCell, $idMsg, $iOldOpt
GUICreate("Mein GUI") ; Erstellt ein GUI-Fenster welches mittig ausgerichtet wird
GUISetHelp("notepad.exe") ; Startet den Editor, wenn F1 gedrückt wird
$iOldOpt = Opt("GUICoordMode", 2)
Local $iWidthCell = 80
GUICtrlCreateLabel("Zeile 1, Zelle 1", 10, 30, $iWidthCell) ; Erste Zelle, Breite 80
GUICtrlCreateLabel("Zeile 2, Zelle 1", -1, 0) ; Nächste Zeile
GUICtrlCreateLabel("Zeile 3, Zelle 2", 0, 0) ; Nächste Zeile und nächste Zelle
GUICtrlCreateLabel("Zeile 3, Zelle 3", 0, -1) ; Nächste Zelle, gleiche Zeile
GUICtrlCreateLabel("Zeile 4, Zelle 1", -3 * $iWidthCell, 0) ; Nächste Zeile, Zelle 1
GUISetState(@SW_SHOW) ; Macht die GUI sichtbar
; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst.
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
$iOldOpt = Opt("GUICoordMode", $iOldOpt)
EndFunc ;==>Example
#include <GUIConstants.au3> Local $hGUI = GUICreate("Beispiel", 300, 200) Local $idLabel = GUICtrlCreateLabel(" Label, das den gesamten Client-Bereich überlappt", 0, 0, 300, 200, $WS_CLIPSIBLINGS) ; $WS_CLIPSIBLINGS impliziert einen kleinen Performance-Nachteil ; siehe https://social.msdn.microsoft.com/Forums/en-US/dcd6a33c-2a6f-440f-ba0b-4a5fa26d14bb/when-to-use-wsclipchildren-and-wsclipsibilings-styles?forum=vcgeneral ; Es ist daher besser Steuerelemente nicht zu überlappen ; Local $idLabel = GUICtrlCreateLabel(" Label, das keine anderen Steuerelemente überlappt", 0, 0, 290, 170) Local $idClose = GUICtrlCreateButton("Schließen", 210, 170, 85, 25) GUICtrlSetState(-1, $GUI_ONTOP) GUISetState() While True Switch GUIGetMsg() Case $GUI_EVENT_CLOSE, $idClose ExitLoop Case $idLabel ConsoleWrite("Label" & @CRLF) EndSwitch WEnd