Functions > GUI >


GUICtrlRead

Lit l'état ou les données d'un contrôle.

GUICtrlRead ( controlID [, advanced = 0] )

Paramètres

controlID L'identifiant du contrôle (controlID) tel que retourné par une fonction GUICtrlCreate...(), ou -1 pour désigner le dernier contrôle créé.
advanced [optionnel] Retourne des informations complémentaires sur un contrôle.
    $GUI_READ_DEFAULT (0) = (par défaut) Renvoie une valeur de l'état ou des données du contrôle.
    $GUI_READ_EXTENDED (1) = Retourne des informations complémentaires sur le contrôle (Voir Remarques).

Les constantes sont définies dans GUIConstantsEx.au3.

Valeur de retour

Succès: Retourne une valeur qui dépend du contrôle (voir ci-dessous).
Échec: Retourne 0.

Type Valeur
Checkbox, Radio L'état coché/décoché ($GUI_CHECKED ou $GUI_UNCHECKED)
Combo, List La valeur sélectionnée
Input, Edit Le texte entré
Button Le texte affiché
Date La date sélectionnée dans le format défini par les paramètres régionaux
Progress Pourcentage en cours
Slider Valeur en cours
Tab L'index, de base 0, du TabItem sélectionné
Menu, MenuItem État du menu/item. Consultez Tableau des états
TreeView Identifiant du contrôle (controlID) du TreeViewItem sélectionné
TreeViewItem État du TreeViewItem
ListView Identifiant du contrôle (controlID) du ListViewItem sélectionné. 0 signifie aucun item sélectionné
ListViewItem Le texte de l'item/ligne sélectionné dans le ListView
Dummy La valeur définie par GUICtrlSendToDummy ou GUICtrlSetData

Remarques

En mode 'avancé' la valeur de retour contient des données supplémentaires sur le contrôle (Voir ci-dessous).
Note: pas tous les contrôles retournent des données supplémentaires!

Type Valeurs supplémentaires
Checkbox, Radio Le texte du contrôle.
Menu, MenuItem Le texte du contrôle.
TreeView Le texte du TreeViewItem actuellement sélectionné.
TreeViewItem Le texte du TreeViewItem.
ListViewItem L'état du ListViewItem si le style étendu $LVS_EX_CHECKBOXES est utilisé en mode avancé. Voir Tableau des états
Tab Le controlID du TabItem sélectionné

Pour les contrôles Checkbox et Radio seuls les états $GUI_CHECKED (1), $GUI_UNCHECKED (4) ou $GUI_INDETERMINATE (2) sont retournés, aussi la valeur peut être utilisée directement.

Pour les items Listview plusieurs états peuvent être retournés comme $GUI_CHECKED et $GUI_UNCHECKED (uniquement pour les contrôles Listview avec LVS_EX_CHECKBOXES-exstyle et avec retour 'avancé'). Donc, utilisez BitAND(GUICtrlRead($item), $GUI_CHECKED) pour tester si l'item est coché.

Pour les items de Treeview plusieurs états peuvent être retournés comme $GUI_FOCUS, $GUI_EXPAND et $GUI_CHECKED, $GUI_UNCHECKED (uniquement pour les contrôles Treeview avec le style TVS_CHECKBOXES. Donc utilisez BitAND(GUICtrlRead($item), $GUI_CHECKED) pour tester si l'item est coché.

En relation

GUICtrlCreate..., GUICtrlGetState, GUICtrlSendMsg, GUICtrlSendToDummy, GUICtrlSetData, GUICtrlUpdate..., GUIEventOptions (Option), GUIGetMsg

Exemple

#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>

Example()

Func Example()
    GUICreate("My GUICtrlRead") ; Crée une GUI centrée

    Local $idMenu1 = GUICtrlCreateMenu("File")

    Local $idList = GUICtrlCreateList("", 10, 10, -1, 100)
    GUICtrlSetData(-1, "item1|item2|item3", "item2")

    Local $idButton = GUICtrlCreateButton("Read", 10, 110, 50)
    GUICtrlSetState(-1, $GUI_FOCUS) ; le focus est mis sur ce bouton

    GUISetState(@SW_SHOW) ; Affiche la GUI

    Local $idMsg, $iMenustate, $sMenutext
    ; Boucle jusqu'à ce que l'utilisateur quitte.
    Do
        $idMsg = GUIGetMsg()
        If $idMsg = $idButton Then
            MsgBox($MB_SYSTEMMODAL, "Selected listbox entry", GUICtrlRead($idList)) ; Affiche l'entrée de zone de liste sélectionnée
            $iMenustate = GUICtrlRead($idMenu1) ; renvoie l'état de l'item du menu
            $sMenutext = GUICtrlRead($idMenu1, 1) ; renvoie le texte de l'item du menu
            MsgBox($MB_SYSTEMMODAL, "State and text of the menuitem", "state:" & $iMenustate & @CRLF & "text:" & $sMenutext)
        EndIf
    Until $idMsg = $GUI_EVENT_CLOSE
EndFunc   ;==>Example