Functions > Tray >


TrayItemSetState

Définit l'état d'un contrôle menu/menuitem de la zone de notification.

TrayItemSetState ( controlID, state )

Paramètres

controlID L'ID du contrôle tel que retourné par la fonction TrayCreateItem ou TrayCreateMenu.
state Consultez le Tableau des états ci-dessous.

Valeur de retour

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

Remarques

Tableau des états
Etat Valeur Commentaires
No Change 0
$TRAY_CHECKED 1 L'item du menu sera coché
$TRAY_UNCHECKED 4 L'item du menu sera décoché
$TRAY_ENABLE 64 L'item du menu sera activé
$TRAY_DISABLE 128 L'item du menu sera grisé
$TRAY_FOCUS 256 L'item du menu sera sélectionné
$TRAY_DEFAULT 512 L'item du menu sera défini comme l'item par défaut

Les valeurs de l'état peuvent s'ajouter comme par exemple $TRAY_CHECKED + $TRAY_DEFAULT qui définit l'item du menu dans l'état coché et l'état par défaut.

Pour réinitialiser ou effacer l'état $TRAY_DEFAULT pour un item de menu il suffit d'utiliser cette fonction sur l'item avec un autre état, par exemple avec $TRAY_ENABLE.

Lorsque vous définissez l'état $TRAY_DEFAULT pour un item de menu, le comportement par défaut d'un double-clic gauche sur l'icône de la zone de notification est d'exécuter cet item par défaut. Pour désactiver ce comportement utilisez Opt("TrayMenuMode", 4).

Les constantes ci-dessus sont définies dans "TrayConstants.au3"

En relation

TrayCreateItem, TrayCreateMenu, TrayItemGetState, TraySetState

Exemple

#NoTrayIcon
#include <MsgBoxConstants.au3>
#include <StringConstants.au3>
#include <TrayConstants.au3> ; Pour les constantes $TRAY_CHECKED et $TRAY_ICONSTATE_SHOW.

Opt("TrayMenuMode", 3) ; Les items du menu de la zone de notification, par défaut, ne seront pas affichés et les items ne seront pas cochés lorsqu'ils seront sélectionnés. Ce sont les options 1 et 2 de TrayMenuMode.

Example()

Func Example()
    Local $idSetState = TrayCreateItem("Set 'About' State")
    TrayCreateItem("") ; Crée une ligne de séparation.

    Local $idAbout = TrayCreateItem("About")
    TrayCreateItem("") ; Crée une ligne de séparation.

    Local $idExit = TrayCreateItem("Exit")

    TraySetState($TRAY_ICONSTATE_SHOW) ; Affiche le menu dans la zone de notification.

    Local $iASlash, $sPath, $iMsg = TrayGetMsg()
    While $iMsg <> $idExit
        Switch $iMsg
            Case $idAbout 
                ; Affiche une boîte de message à propos de la version et 
                ; du chemin d'installation de l'exécutable AutoIt.

                ; Recherche de droite à gauche l'antislash qui marque la fin du chemin
                $iASlash = StringInStr(@AutoItExe, "\", $STR_NOCASESENSEBASIC, -1)
                ; Extrait le chemin seul, sans le nom, ni '\'
                $sPath = StringLeft(@AutoItExe, $iASlash - 1)

                MsgBox($MB_SYSTEMMODAL, "", "Exemple de menu dans la zone de notification." & @CRLF & @CRLF & _
                        "Version: " & @AutoItVersion & @CRLF & _
                        "Chemin d'installation: " & $sPath) 

            Case $idSetState
                ; Définit l'état de l'item 'About' à l'état coché.
                TrayItemSetState($idAbout, $TRAY_CHECKED)

        EndSwitch

        $iMsg = TrayGetMsg()
    WEnd
EndFunc   ;==>Example