Funktionsreferenz


GUICreate

Erstellt ein GUI-Fenster.

GUICreate ( "title" [, width [, height [, left [, top [, style [, exStyle [, parent]]]]]]] )

Parameter

title Der Titel des GUI-Fensters.
width [optional] Die Breite des Fensters.
height [optional] Die Höhe des Fensters.
left [optional] Die linke Seite der Dialogbox. Standardmäßig (Wert -1) wird das Fenster zentriert. Wenn left angegeben wird, muss auch top angegeben werden.
top [optional] Die Oberkante der Dialogbox. Standardmäßig (Wert -1) wird das Fenster zentriert.
style [optional] Definiert den Fenster-Stil. Siehe Anhang GUI-Stile für Controls.
Verwende -1 für den Standard-Stil, der eine Kombination aus
$WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU Stil ist.
Einige Stile werden immer mit einbezogen: $WS_CLIPSIBLINGS, und $WS_SYSMENU wenn $WS_MAXIMIZEBOX oder $WS_SIZEBOX verwendet werden.
exStyle [optional] Definiert den erweiterten Stil des Fensters. Siehe die Tabelle der erweiterten Stile weiter unten. -1 ist der Standardwert.
parent [optional] Das Handle eines anderen, zuvor erstellten Fensters - dieses neue Fenster wird ein Child dieses Parent-Fensters.

Rückgabewert

Erfolg: Gibt das Handle des Fensters zurück.
Fehler: Gibt 0 zurück, wenn das Fenster nicht erstellt werden kann und setzt @error auf 1.

Bemerkungen

Standardmäßig ist die Dialogbox (GUI) in ihrer Größe nicht veränderbar und kann nicht maximiert werden. Deshalb können hierfür WS_SIZEBOX oder WS_MAXIMIZEBOX als Stil-Parameter verwendet werden.
Wenn WS_SIZEBOX verwendet wird, wird die erste Dialogbox als minimale Größe verwendet und beim Vergrößern des Fensters werden die Controls automatisch positioniert.
Wenn man nur einen Stil definiert, wird auch nur dieser eine Stil gesetzt. Man sollte also nicht vergessen, ihn mit Standard-Stilen zu kombinieren. Zum Beispiel werden beim Verwenden von WS_SIZEBOX nicht automatisch auch WS_MINIMIZEBOX, WS_CAPTION, WS_POPUP und WS_SYSMENU gesetzt. Deshalb ist es für ein größenveränderliches Fenster am besten, WS_OVERLAPPEDWINDOW zu benutzen.
Verwendet man $WS_EX_MDICHILD, dann ist die Position relativ zum Client-Bereich des Parent-Fensters. Mit $WS_EX_LAYERED ist es möglich, ein transparentes Bild über ein im Parent-Fenster definiertes Hintergrundbild zu legen.
Das Verwenden von $WS_CLIPCHILDREN kann flackern verhindern, wenn zum Beispiel eine GUI mit einem Edit Control in der Größe verändert wird.
Man kann das ziehen eines Fensters für GUI aktivieren ohne $WS_CAPTION zu verwenden. Stattdessen kann man $WS_EX_CONTROLPARENT als erweiterten Stil verwenden.

Um weitere Stile zum Standardstil hinzuzufügen ist BitOr($GUI_SS_DEFAULT_GUI, newstyle,...) zu verwenden.
mit der festgelegten Größe ist die Arbeitsfläche der GUI gemeint. Der Rand und die Titelzeile macht das Fenster etwas größer als festgelegt. Verwendet man Menu Controls, so ändert sich auch die Fensterhöhe.

Tabelle Erweiterte Stile
erweiterter Stil Resultat
$WS_EX_ACCEPTFILES Erlaubt es, einen Dateinamen per Drag-and-Drop in ein Edit- oder Input-Control einzufügen. Das Textfeld muss zusätzlich mit GUICtrlSetState auf den Status $GUI_DROPACCEPTED gesetzt werden. Bei anderen Controls kann die Drag-and-Drop-Information über @GUI_DRAGID, @GUI_DRAGFILE, @GUIDROPID erhalten werden.
$WS_EX_APPWINDOW Das Fenster erscheint nur als aktuelles Fenstersymbol (top-level) auf der Taskleiste.
$WS_EX_CLIENTEDGE Legt fest, dass ein Fenster einen Rahmen mit abgesenkter Kante hat.
$WS_EX_CONTEXTHELP Bindet ein Fragezeichen in die Titelleiste des Fensters ein. Kann nicht zusammen mit WS_MAXIMIZEBOX oder WS_MINIMIZEBOX verwendet werden.
$WS_EX_DLGMODALFRAME Erstellt ein Fenster mit doppeltem Rahmen. Das Fenster kann optional mit einer Titelleiste erstellt werden, indem der WS_CAPTION Stil als Stilparameter angegeben wird.
$WS_EX_MDICHILD Erstellt ein Child-Fenster innerhalb seines Parent-Fensters (als Simulation, nicht wirklich MDI).
$WS_EX_OVERLAPPEDWINDOW Kombiniert die beiden Stile WS_EX_CLIENTEDGE und WS_EX_WINDOWEDGE.
$WS_EX_STATICEDGE Erstellt ein Fenster mit einem 3D-Rahmen-Stil, das für Felder gedacht ist, die keine Eingaben durch Benutzer akzeptieren.
$WS_EX_TOPMOST Legt fest, dass ein Fenster mit diesem Stil vor allen anderen Fenstern platziert werden soll und auch dann das vorderste Fenster bleibt, selbst wenn das Fenster deaktiviert wird.
$WS_EX_TRANSPARENT Das Fenster erscheint transparent, weil die Ausschnitte der darunterliegenden "Geschwister"-Fenster schon angezeigt worden sind.
$WS_EX_TOOLWINDOW Erstellt eine Toolbar (tool window); das heißt, ein Fenster, das als schwebende Symbolleiste verwendet werden soll. Eine Toolbar hat eine Titelleiste, die kürzer ist als normale Titelleisten, und der Fenstertitel wird mit einer kleineren Schrift angezeigt. Eine Toolbar erscheint nicht in der Taskleiste oder im Dialogfeld, das erscheint, wenn der Benutzer die Tastenkombination ALT+TAB drückt. Wenn ein solches Fenster ein System-Menü hat, wird kein Icon dafür auf der Titelleiste angezeigt. Man kann das System-Menü aber trotzdem mit ALT+SPACE sichtbar machen.
$WS_EX_WINDOWEDGE Legt fest, dass ein Fenster einen Rahmen mit erhöhter Kante hat.
$WS_EX_LAYERED Erstellt ein Fenster mit mehreren Schichten (Layern). Beachte, dass dieser Stil nicht für Child-Fenster verwendet werden kann.

Um die oben genannten Werte verwenden zu können, muss #include <WindowsConstants.au3> in das Skript eingefügt werden.

Folgendes ist zu beachten: Das zurückgegebene Handle dieser Funktion, ist ein echtes Fenster-Handle, was heißt, dass es in der gleichen Art verwendet werden kann wie der Rückgabewert von WinGetHandle.

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

Verwandte Funktionen

GUISetParameters..., GUICtrlCreate..., GUIGetMsg, GUISwitch, GUIGetStyle, GUIDelete, WinGetHandle, GUICtrlSetDefBkColor, GUICtrlSetDefColor, GUIGetCursorInfo

Beispiel


#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Example1()
Example2()

; Beispiel 1
Func Example1()
    Local $msg

    GUICreate("Meine GUI") ; Erstellt ein GUI-Fenster welches mittig ausgerichtet wird
    GUISetState(@SW_SHOW) ; Zeigt das leere GUI-Fenster

    ; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst
    While 1
        $msg = GUIGetMsg()

        If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd
    GUIDelete()
EndFunc   ;==>Example1

; Beispiel 2
Func Example2()
    Local $sFile = "..\GUI\logo4.gif"

    Local $gui = GUICreate("Hintergrund", 400, 100)

    ; Hintergrundbild
    GUICtrlCreatePic("..\GUI\msoobe.jpg", 0, 0, 400, 100)

    ; Transparentes MDI Child Fenster
    GUICreate("", 169, 68, 20, 20, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $gui)

    ; Transparentes Bild
    GUICtrlCreatePic($sFile, 0, 0, 169, 68)
    GUISetState(@SW_SHOW)

    Do
        Local $msg = GUIGetMsg()

    Until $msg = $GUI_EVENT_CLOSE
EndFunc   ;==>Example2