Obtient le handle d'un contrôle et certains handles spéciaux (Menu, ContextMenu, TreeViewItem).
GUICtrlGetHandle ( controlID )
controlID | Identifiant du contrôle tel que retourné par une fonctions GUICtrlCreate...(). |
Succès: | Retourne le handle de l'ID du contrôle donné. |
Échec: | Retourne 0. |
#include <GUIConstantsEx.au3> #include <MsgBoxConstants.au3> Example() Func Example() GUICreate("My GUI", 300, 200) Local $idFileMenu = GUICtrlCreateMenu("&File") GUICtrlCreateMenuItem("&Open", $idFileMenu) GUICtrlCreateMenuItem("&Save", $idFileMenu) GUICtrlCreateMenuItem("", $idFileMenu) Local $idOptionsMenu = GUICtrlCreateMenu("O&ptions", $idFileMenu) GUICtrlCreateMenuItem("View", $idOptionsMenu) GUICtrlCreateMenuItem("", $idOptionsMenu) GUICtrlCreateMenuItem("Tools", $idOptionsMenu) GUICtrlCreateMenuItem("", $idFileMenu) Local $idExitItem = GUICtrlCreateMenuItem("&Exit", $idFileMenu) Local $idHelpMenu = GUICtrlCreateMenu("&?") Local $idAboutItem = GUICtrlCreateMenuItem("&About", $idHelpMenu) Local $idEndBtn = GUICtrlCreateButton("End", 110, 140, 70, 20) SetMenuColor($idFileMenu, 0xEEBB99) ; Valeur de couleur RGB SetMenuColor($idOptionsMenu, 0x66BB99); Valeur de couleur RGB SetMenuColor($idHelpMenu, 0x99BBEE) ; Valeur de couleur RGB GUISetState(@SW_SHOW) Local $idMsg ; Boucle jusqu'à ce que l'utilisateur quitte. Do $idMsg = GUIGetMsg() If $idMsg = $idAboutItem Then MsgBox($MB_SYSTEMMODAL, "About...", "Colored menu sample") EndIf Until ($idMsg = $idExitItem) Or ($idMsg = $idEndBtn) Or ($idMsg = $GUI_EVENT_CLOSE) EndFunc ;==>Example ; Applique la couleur au menu Func SetMenuColor($nMenuID, $nColor) Local Const $MIM_APPLYTOSUBMENUS = 0x80000000 Local Const $MIM_BACKGROUND = 0x00000002 Local $hMenu = GUICtrlGetHandle($nMenuID) Local $hBrush = DllCall("gdi32.dll", "hwnd", "CreateSolidBrush", "int", $nColor) $hBrush = $hBrush[0] Local $tMenuInfo = DllStructCreate("dword;dword;dword;uint;dword;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, "ptr", DllStructGetPtr($tMenuInfo)) ; Libére Struct (pas vraiment nécessaire car elle est Local) $tMenuInfo = 0 EndFunc ;==>SetMenuColor