Funktionreferenz


GUICtrlCreateLabel

Beschreibung anzeigen in

Erstellt ein Label für die GUI.

GUICtrlCreateLabel ( "text", left, top [, width [, height [, style = -1 [, exStyle = -1]]]] )

Parameter

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.

Rückgabewert

Erfolg: Die Identifikationsnummer (Control-ID) des neuen Controls.
Fehler: 0.

Bemerkungen

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

Verwandte Funktionen

GUICoordMode (Option), GUICtrlUpdate..., GUIGetMsg

Beispiel

Beispiel 1

#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

GUICtrlCreateLabel() überlappende Steuerelemente

#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