Obtient le handle d'un contr�le menu/menuitem de la zone de notification.
TrayItemGetHandle ( controlID )
controlID | L'ID du contr�le tel que retourn� par la fonction TrayCreateItem ou TrayCreateMenu. |
Succ�s: | Retourne le handle de l'ID donn�. |
�chec: | Retourne 0. |
TrayItemGetState, TrayItemGetText
#NoTrayIcon #include <MsgBoxConstants.au3> #include <StringConstants.au3> #include <TrayConstants.au3> ; Pour la constante $TRAY_ICONSTATE_SHOW. ; 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. Opt("TrayMenuMode", 3) ; Constantes n�cessaires pour SetMenuColor Global Const $MIM_APPLYTOSUBMENUS = 0x80000000, $MIM_BACKGROUND = 0x00000002 Example() Func Example() ; Cr�e un sous-menu du menu de la zone de notification avec deux sous-�l�ments. Local $idSettings = TrayCreateMenu("Settings") Local $idDisplay = TrayCreateItem("Display", $idSettings) Local $idPrinter = TrayCreateItem("Printer", $idSettings) 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. SetMenuColor(0, 0xEEBB99) ; Valeur de couleur RGB, '0' se r�f�re au menu de la zone de notification lui-m�me. SetMenuColor($idSettings, 0x66BB99); Valeur de couleur RGB pour le menu "Settings". 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, "", "AutoIt tray menu example." & @CRLF & @CRLF & _ "Version: " & @AutoItVersion & @CRLF & _ "Chemin d'installation: " & $sPath) Case $idDisplay, $idPrinter MsgBox($MB_SYSTEMMODAL, "", "Un �l�ment dans le sous menu a �t� s�lectionn� dans le menu de la zone de notification.") EndSwitch $iMsg = TrayGetMsg() WEnd EndFunc ;==>Example Func SetMenuColor($iMenuID, $iColor) Local $hMenu = TrayItemGetHandle($iMenuID) ; Obtient le handle interne de menu Local $hBrush = DllCall("gdi32.dll", "hwnd", "CreateSolidBrush", "int", $iColor) $hBrush = $hBrush[0] Local $tMenuInfo = DllStructCreate("dword;dword;dword;uint;ptr;dword;ptr") DllStructSetData($tMenuInfo, 1, DllStructGetSize($tMenuInfo)) DllStructSetData($tMenuInfo, 2, BitOR($MIM_APPLYTOSUBMENUS, $MIM_BACKGROUND)) DllStructSetData($tMenuInfo, 5, $hBrush) DllCall("user32.dll", "int", "SetMenuInfo", "hwnd", $hMenu, "struct*", $tMenuInfo) EndFunc ;==>SetMenuColor