GUICtrlGetHandle
Возвращает указатель элемента и некоторые специальные (пункты) указатели (Menu, ContextMenu, TreeViewItem).
GUICtrlGetHandle ( controlID )
Параметры
controlID | Идентификатор элемента управления, возвращаемый функциями GUICtrlCreate... |
Возвращаемое значение
Успех: | Возвращает указатель данного элемента управления. |
Ошибка: | Возвращает 0. |
Примечания
Внимание, следующие элементы управления не поддерживаются: Dummy, Graphic, Object, ListViewItem и TabItemСм. также
IsHWndПример
#include <GUIConstantsEx.au3>
Example()
Func Example()
Local $hGui, $FileMenu, $OpenItem, $SaveItem, $OptionsMenu
Local $ViewItem, $ToolsItem, $ExitItem, $HelpMenu, $AboutItem
Local $EndBtn, $Msg
$hGui = GUICreate("Получает дескриптор", 300, 200)
$FileMenu = GUICtrlCreateMenu("&Файл")
$OpenItem = GUICtrlCreateMenuItem("&Открыть", $FileMenu)
$SaveItem = GUICtrlCreateMenuItem("&Сохранить", $FileMenu)
GUICtrlCreateMenuItem("", $FileMenu)
$OptionsMenu = GUICtrlCreateMenu("Параметры", $FileMenu)
$ViewItem = GUICtrlCreateMenuItem("Просмотр", $OptionsMenu)
GUICtrlCreateMenuItem("", $OptionsMenu)
$ToolsItem = GUICtrlCreateMenuItem("Инструменты", $OptionsMenu)
GUICtrlCreateMenuItem("", $FileMenu)
$ExitItem = GUICtrlCreateMenuItem("&Выход", $FileMenu)
$HelpMenu = GUICtrlCreateMenu("&?")
$AboutItem = GUICtrlCreateMenuItem("&О программе", $HelpMenu)
$EndBtn = GUICtrlCreateButton("Выход", 110, 130, 80, 25)
SetMenuColor($FileMenu, 0xffcea8) ; значение цвета BGR
SetMenuColor($OptionsMenu, 0x93ca80); значение цвета BGR
SetMenuColor($HelpMenu, 0xa8ceff) ; значение цвета BGR
GUISetState()
While 1
$Msg = GUIGetMsg()
Switch $Msg
Case $ExitItem, $EndBtn, $GUI_EVENT_CLOSE
ExitLoop
Case $AboutItem
MsgBox(64, "О программе", "Пример цветного меню", 0, $hGui)
EndSwitch
WEnd
EndFunc
; Устанавливает цвет в меню
Func SetMenuColor($nMenuID, $nColor)
Local $hMenu, $hBrush, $stMenuInfo
Local Const $MIM_APPLYTOSUBMENUS = 0x80000000
Local Const $MIM_BACKGROUND = 0x00000002
$hMenu = GUICtrlGetHandle($nMenuID)
; См. также _WinAPI_CreateSolidBrush
$hBrush = DllCall("gdi32.dll", "hwnd", "CreateSolidBrush", "int", $nColor)
$hBrush = $hBrush[0]
$stMenuInfo = DllStructCreate("dword;dword;dword;uint;dword;dword;ptr")
DllStructSetData($stMenuInfo, 1, DllStructGetSize($stMenuInfo))
DllStructSetData($stMenuInfo, 2, BitOR($MIM_APPLYTOSUBMENUS, $MIM_BACKGROUND))
DllStructSetData($stMenuInfo, 5, $hBrush)
; См. также _GUICtrlMenu_SetMenuInfo
DllCall("user32.dll", "int", "SetMenuInfo", "hwnd", $hMenu, "ptr", DllStructGetPtr($stMenuInfo))
; Освобождает структуру, не обязательно, так как она локальная
$stMenuInfo = 0
EndFunc