Функция GUICtrlCreateMenu

 ↑  ←  Описание функции


GUICtrlCreateMenu

Создаёт меню в GUI.

GUICtrlCreateMenu ( "submenutext" [, menuID = -1 [, menuentry = -1 ]] )

Параметры

submenutext Текст пункта меню / подменю.
menuID [необязательный] Идентификатор меню, в котором создаётся подменю. Если -1, то создаётся в меню первого уровня.
menuentry [необязательный] Позволяет установить порядковый номер созданного подменю в меню. Отсчёт начинается с 0.

Возвращаемое значение

Успех:Возвращает идентификатор (controlID) нового элемента.
Ошибка:Возвращает 0.

Примечания

Чтобы установить или изменить параметры элемента смотрите GUICtrlUpdate....

См. также

GUICtrlSetState, GUIGetMsg, GUICtrlCreateMenuItem, GUICtrlGetHandle, GUICtrlCreateContextMenu

Пример

#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>

Local $iFileMenu, $iFileItem, $sFilePath, $iStatusBar
Local $iHelpMenu, $iInfoItem, $iExit, $iRecentFilesMenu, $hGui
Local $iViewMenu, $iViewStatusItem, $iStyleitem, $iCancel, $iBtnOK
Local $iRadioitem1, $iRadioitem2, $iRadioitem3, $iRadioitem4

$hGui = GUICreate("Элемент меню в GUI", 300, 200)

$iFileMenu = GUICtrlCreateMenu("&Файл")
$iFileItem = GUICtrlCreateMenuItem("Открыть", $iFileMenu)
GUICtrlSetState(-1, $GUI_DEFBUTTON)
$iHelpMenu = GUICtrlCreateMenu("?")
GUICtrlCreateMenuItem("Сохранить", $iFileMenu)
GUICtrlSetState(-1, $GUI_DISABLE)
$iInfoItem = GUICtrlCreateMenuItem("Информация", $iHelpMenu)
$iExit = GUICtrlCreateMenuItem("Выход", $iFileMenu)
$iRecentFilesMenu = GUICtrlCreateMenu("Последние файлы", $iFileMenu, 1)

GUICtrlCreateMenuItem("", $iFileMenu, 2) ; создаёт разделительную линию

$iViewMenu = GUICtrlCreateMenu("Вид", -1, 1) ; Создан до элемента меню "?"
$iViewStatusItem = GUICtrlCreateMenuItem("Строка состояния", $iViewMenu)
GUICtrlSetState(-1, $GUI_CHECKED)
$iStyleitem = GUICtrlCreateMenuItem("Стиль GUI POPUP", $iViewMenu)
GUICtrlCreateMenuItem("", $iViewMenu)
$iRadioitem1 = GUICtrlCreateMenuItem("Радио1", $iViewMenu, -1, 1)
$iRadioitem2 = GUICtrlCreateMenuItem("Радио2", $iViewMenu, -1, 1)
$iRadioitem3 = GUICtrlCreateMenuItem("Радио3", $iViewMenu, -1, 1)
GUICtrlSetState(-1, $GUI_CHECKED)
$iRadioitem4 = GUICtrlCreateMenuItem("Радио4", $iViewMenu, -1, 1)

$iBtnOK = GUICtrlCreateButton("OK", 60, 120, 80, 25)
GUICtrlSetState(-1, $GUI_FOCUS)
$iCancel = GUICtrlCreateButton("Отмена", 160, 120, 80, 25)

$iStatusBar = GUICtrlCreateLabel('Строка состояния', 0, 165, 300, 16, BitOR($SS_SIMPLE, $SS_SUNKEN))

GUISetState()
While 1
    Switch GUIGetMsg()
        Case $iFileItem
            $sFilePath = FileOpenDialog("Выберите файл...", @TempDir, "Все (*.*)", 3, '', $hGui)
            If Not @error Then GUICtrlCreateMenuItem($sFilePath, $iRecentFilesMenu)
        Case $iViewStatusItem ; Событие при клике на пункте меню "Строка состояния"
            If BitAND(GUICtrlRead($iViewStatusItem), $GUI_CHECKED) = $GUI_CHECKED Then ; Если галочка в наличии, тогда
                GUICtrlSetState($iViewStatusItem, $GUI_UNCHECKED) ; Убирает галочку
                GUICtrlSetState($iStatusBar, $GUI_HIDE) ; Скрывает строку состояния
            Else ; Иначе
                GUICtrlSetState($iViewStatusItem, $GUI_CHECKED) ; Ставит галочку
                GUICtrlSetState($iStatusBar, $GUI_SHOW) ; Показывает строку состояния
            EndIf
        Case $iStyleitem
            If BitAND(GUICtrlRead($iStyleitem), $GUI_CHECKED) = $GUI_CHECKED Then
                GUICtrlSetState($iStyleitem, $GUI_UNCHECKED)
                GUISetStyle($GUI_SS_DEFAULT_GUI)
            Else
                GUICtrlSetState($iStyleitem, $GUI_CHECKED)
                GUISetStyle(BitOR($WS_BORDER, $WS_POPUP, $WS_SYSMENU))
            EndIf
        Case $iInfoItem
            MsgBox(64, "Информация", "Изменение цвета меню смотрите в примере GUICtrlGetHandle", 0, $hGui)
        Case $GUI_EVENT_CLOSE, $iCancel, $iExit
            ExitLoop
    EndSwitch
WEnd
GUIDelete()