Funktionreferenz


GUICtrlSetState

Beschreibung anzeigen in

Verändert den Status eines Controls.

GUICtrlSetState ( controlID, state )

Parameter

ControlID Die Identifikationsnummer des Controls (Control-ID), wie von einer GUICtrlCreate... Funktion zurückgegeben, oder -1 für das zuletzt erzeugte Control.
state Siehe Status-Tabelle unten.

Rückgabewert

Erfolg: 1.
Fehler: 0.

Bemerkungen

    Status-Tabelle

Status Kommentare
$GUI_CHECKED (1) Radiobutton, Checkbox oder ein ListViewItem wird markiert
$GUI_INDETERMINATE (2) Eine Checkbox mit Dreifach-Status-Attribut wird grau dargestellt
$GUI_UNCHECKED (4) Markierung von Radiobutton, Checkbox oder eines ListViewItems wird entfernt
$GUI_DROPACCEPTED (8) Control wird "Drop"-Aktionen annehmen: von Dateien oder von "Drag"-Aktionen eines anderen Controls. Siehe Bemerkungen
$GUI_SHOW (16) Das Control wird sichtbar. Auf ein TabItem-Control angewendet, wird der vorderste Tab angezeigt
$GUI_HIDE (32) Das Control wird unsichtbar
$GUI_ENABLE (64) Das Control kann benutzt werden
$GUI_DISABLE (128) Das Control wird grau dargestellt (kann nicht benutzt werden)
$GUI_FOCUS (256) Das Control erhält den Eingabe- bzw. Auswahlfokus
$GUI_DEFBUTTON (512) Das Control wird zum vor-ausgewählten Button des Fensters.
$GUI_EXPAND (1024) Das TreeViewItem klappt seinen Unterverzeichnisbaum auf.
$GUI_ONTOP (2048) Control hat das "immer im Vordergrund" Attribut für das Fenster (zOrdering).
$GUI_NODROPACCEPTED (4096) Control wird keine "Drop"-Aktionen annehmen
$GUI_NOFOCUS (8192) ListView-Controls verlieren den Fokus
$GUI_AVISTART (0) Avi-Control beginnt mit dem Abspielen des avi-Videos
$GUI_AVISTOP (1) Avi-Control stoppt das avi-Video
$GUI_AVICLOSE (2) Avi-Control stoppt das Abspielen und gibt die Videodatei frei

Statuswerte können aufsummiert werden; zum Beispiel wird durch $GUI_DISABLE (128) + $GUI_HIDE (32) das Control deaktiviert und versteckt.

Wenn ein AVI-Control mit $GUI_HIDE (32) versteckt werden soll, sollte es mit $GUI_AVICLOSE (1) geschlossen werden.

Der Status eines Kontextmenüs kann nicht verändert werden.
Der Status von "listviewitem" Controls kann verändert werden, falls das zugehörige "Listview"-Item mit dem erweiterten Stil $LVS_EX_CHECKBOXES erzeugt wurde. $GUI_FOCUS (256) und $GUI_NOFOCUS (8192) können auf spezielle ListViewItems angewendet werden, vorausgesetzt, der Stil dieser ListView-Items gestattet auch ein Anzeigen: $LVS_SHOWSELALWAYS.
Der Status eines "Menü-" oder eines "Menüeintrag-" Controls kann nicht versteckt sein.

! Wichtige Information für $GUI_EXPAND: dieser Status kann nur für TreeViewItems verwendet werden. Falls dies verwendet werden soll, dann muss mindestens 1 Sub-TreeViewItem unter diesem Item existieren/erstellt werden !
Falls ein anderer Eintrag im TreeView markiert werden soll, ist $GUI_FOCUS (256) zu verwenden. Das Parent-TreeView erhält den Fensterfokus, und der festgelegte Eintrag wird als ausgewählt markiert.
Falls ein Treeview-Eintrag als Standard deklariert werden soll (d.h. in dicker Schrift darstellen), ist $GUI_DEFBUTTON (512) zu verwenden. Um es wieder abzuschalten, ist statt $GUI_DEFBUTTON (512) ein anderer Wert zu verwenden, z.B. 0. Dieser Status wird nicht durch GUICtrlGetState() zurückgegeben.

Falls $GUI_DROPACCEPTED (8) auf ein sichtbares Control angewendet wurde, ist "Drag & Drop" freigeschaltet. Das Änderungs- bzw.- Eingabe-Control erhält den Dateinamen zugewiesen.
Für andere Controls gilt beim Erhalt von $GUI_EVENT_DROPPED: @GUI_DragId gibt die Control-ID zurück, wo die "Drag"-Aktion begann (-1 falls ein Dateiname angegeben wurde, @GUI_DragFile enthält den Dateinamen, der "gedroppt" werden soll) und @GUI_DropId gibt die Control-ID des Controls zurück, auf das "gedroppt" wurde.
Nur das "Ziehen" ("Drag") eines ListviewItems startet den Drag & Drop Prozess. Die @GUI_DragId ist dann die ListView Control-ID.

GUICtrlSetState funktioniert nur mit Standard-Controls.
Bei Controls die z. B. durch _GUICtrlComboBoxEx_Create oder _GUICtrlListView_Create erstellt wurden, kann der Status mit _WinAPI_ShowWindow verändert werden.

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

Verwandte Funktionen

GUICtrlCreate..., GUICtrlGetState

Beispiel

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

Example()

Func Example()
    ; Erstellt eine GUI mit verschiedenen Controls.
    Local $hGui = GUICreate("Beispiel", 420, 200, -1, -1, -1, $WS_EX_ACCEPTFILES)

    ; Erstellt ein Label und setzt den Status "Drop"-Aktionen annehmen.
    Local $idLabel = GUICtrlCreateLabel("Ziehe eine Datei auf dieses Label.", 10, 10, 400, 40, $WS_BORDER)
    GUICtrlSetState($idLabel, $GUI_DROPACCEPTED)

    ; Erstellt ein Input und setzt den Status "Drop"-Aktionen annehmen.
    Local $idInput = GUICtrlCreateInput("", 10, 60, 400, 22)
    GUICtrlSetState($idInput, $GUI_DROPACCEPTED)

    Local $idButton_OK = GUICtrlCreateButton("OK", 310, 370, 85, 25)

    ; Zeigt die GUI
    GUISetState(@SW_SHOW, $hGui)

    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE, $idButton_OK
                ExitLoop

            Case $GUI_EVENT_DROPPED
                ; Falls der Wert von @GUI_DropId $idLabel ist, so wird der Pfad und Dateiname in das Label geschrieben.
                If @GUI_DropId = $idLabel Then GUICtrlSetData($idLabel, @GUI_DragFile)

        EndSwitch
    WEnd

    ; Löscht die vorherige GUI und alle Controls.
    GUIDelete($hGui)
EndFunc   ;==>Example