Functions > GUI > GUICtrlUpdate >


GUICtrlSetState

Change l'état d'un contrôle.

GUICtrlSetState ( controlID, state )

Paramètres

controlID L'ID du contrôle tel que retourné par une fonction GUICtrlCreate...(), ou -1 pour désigner le dernier contrôle créé.
state Consultez le Tableau des Etats ci-dessous.

Valeur de retour

Succès: Retourne 1.
Échec: Retourne 0.

Remarques

    Tableau des Etats

Etats Commentaires
$GUI_CHECKED (1) Les contrôles Radio, Checkbox ou ListViewItem seront cochés.
$GUI_INDETERMINATE (2) Les contrôles Checkbox qui ont l'attribut à trois états seront grisés.
$GUI_UNCHECKED (4) Les contrôles Radio, Checkbox ou ListViewItem seront décochés.
$GUI_DROPACCEPTED (8) Le contrôle acceptera action Drop : à partir d'un fichier ou d'un Drag d'un autre contrôle. Voir Remarques.
$GUI_SHOW (16) Le contrôle sera visible. Le TabItem sélectionnera le premier onglet à afficher.
$GUI_HIDE (32) Le contrôle ne sera pas visible.
$GUI_ENABLE (64) Le contrôle sera activé.
$GUI_DISABLE (128) Le contrôle sera grisé.
$GUI_FOCUS (256) Le contrôle recevra le focus pour entrée/sélection.
$GUI_DEFBUTTON (512) Le contrôle sera défini comme bouton par défaut de la fenêtre. Voir Remarque sur TreeviewItems.
$GUI_EXPAND (1024) Le contrôle TreeViewItem développera ses items enfants.
$GUI_ONTOP (2048) Le contrôle aura l'attribut Ontop (au dessus des autres fenêtres) (zOrdering).
$GUI_NODROPACCEPTED (4096) Le contrôle n'acceptera pas l'action Drop.
$GUI_NOFOCUS (8192) Le contrôle ListView perdra le focus.
$GUI_AVISTART (0) Le contrôle Avi démarrera la vidéo.
$GUI_AVISTOP (1) Le contrôle Avi arrêtera la vidéo.
$GUI_AVICLOSE (2) Le contrôle Avi arrêtera la vidéo et libérera les ressources.

Les valeurs d'État peuvent s'additionner comme par exemple $GUI_DISABLE(128)+$GUI_HIDE(32) définit le contrôle dans un état désactivé et caché.

Si un contrôle AVI doit être caché avec $GUI_HIDE(32), il doit être fermé avec $GUI_AVICLOSE(1).

L'état d'un contrôle "contextmenu" ne peut pas être changé.
L'état d'un contrôle "ListViewItem" peut être modifié si le contrôle "listview" associé a été créé avec un style étendu $LVS_EX_CHECKBOXES. $GUI_FOCUS(256) et $GUI_NOFOCUS(8192) peuvent être utilisés sur un ListViewItem spécifique associé à un style de contrôle listview qui permet de l'afficher: $LVS_SHOWSELALWAYS.
L'état d'un contrôle "menu" ou "menuitem" ne peut pas être Hiden (caché).

! Information importante pour $GUI_EXPAND: cet état n'est utilisé que pour TreeViewItems. Si vous souhaitez utiliser cette 'action' alors au moins 1 Sous-TreeViewItem doit exister ou être créé sous cet item!
Si vous voulez sélectionner un autre item dans un TreeView, vous pouvez utiliser $GUI_FOCUS(256) - le parent Treeview obtient le focus de la fenêtre et l'item spécifié est marqué comme sélectionné.
Si vous souhaitez définir un item de Treeview comme item par défaut, ce qui signifie la mise en gras, vous pouvez utiliser $GUI_DEFBUTTON(512) - pour annuler la mise en gras il suffit d'utiliser une autre valeur que $GUI_DEFBUTTON(512), par exemple 0. Cet état ne sera pas retourné par GUICtrlGetState().

Si $GUI_DROPACCEPTED(8) est défini sur un contrôle visible un drag & drop peut être pris en compte. Le contrôle Edit ou Input sera défini avec le nom du fichier.
Pour d'autres contrôles à la réception de $GUI_EVENT_DROPPED, @GUI_DragId retournera le controlID d'où le drag a démarré (-1 si c'est un fichier, @GUI_DragFile contient le nom du fichier entrain de subir le 'drag') et @GUI_DropId retourne le controlID du contrôle entrain de subir le 'drop'.
C'est seulement lors du 'drag' d'un ListViewItem que démarrera le processus du drag & drop. @GUI_DragId sera le controlID du ListView.

En relation

GUICtrlCreate..., GUICtrlGetState

Exemple

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

Example()

Func Example()
    ; Crée une GUI avec différents contrôles.
    Local $hGUI = GUICreate("Example", 420, 200, -1, -1, -1, $WS_EX_ACCEPTFILES)

    ; Crée un contrôle Label et définit l'état  de 'drop' accepté.
    Local $idLabel = GUICtrlCreateLabel("Drop a file on this label.", 10, 10, 400, 40, $WS_BORDER)
    GUICtrlSetState($idLabel, $GUI_DROPACCEPTED)

    ; Crée un contrôle Input et définit l'état de 'drop' accepté.
    Local $idInput = GUICtrlCreateInput("", 10, 60, 400, 22)
    GUICtrlSetState($idInput, $GUI_DROPACCEPTED)

    Local $idOK = GUICtrlCreateButton("OK", 310, 170, 85, 25)

    ; Affiche la GUI.
    GUISetState(@SW_SHOW, $hGUI)

    Local $idMsg = GUIGetMsg()
    While ($idMsg <> $GUI_EVENT_CLOSE) And ($idMsg <> $idOK)
        If $idMsg = $GUI_EVENT_DROPPED Then
            ; Si la valeur de GUI_DropId est $idLabel, alors définit le nom du fichier déposé.
            If @GUI_DropId = $idLabel Then GUICtrlSetData($idLabel, @GUI_DragFile)
        EndIf
        $idMsg = GUIGetMsg()
    WEnd

    ; Supprime la GUI précédente et tous ses contrôles.
    GUIDelete($hGUI)
EndFunc   ;==>Example