PureBasic

EventMenu()

Синтаксис

MenuItem = EventMenu()

Описание


После события с типом #PB_Event_Menu (полученного из функции WindowEvent() или WaitWindowEvent()), используйте эту функцию, чтобы определить, какой пункт Меню, кнопка Панели инструментов или Сочетание клавиш является причиной события.

Параметры

Ничего.

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

Возвращает Номер пункта Меню, Номер кнопки Панели инструментов или Номер события Сочетания клавиш, связанного с событием.

Комментарии

Событие Панели инструментов похоже на событие Меню (так как кнопки Панели инструментов чаще всего лишь средства быстрого доступа к пунктам Меню). Поэтому лучше всего использовать одинаковые идентификаторы (ID) для пункта Меню и кнопки Панели инструментов, предназначенных для одних и тех же действий, в таком случае для управления панелью инструментов не потребуется дополнительный код.

Пример (Фран)

If OpenWindow(0, 0, 0, 230, 90, "Пример управления событиями...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)

    ;Сочетания клавиш
    AddKeyboardShortcut(0, #PB_Shortcut_Control | #PB_Shortcut_N, 1)
    AddKeyboardShortcut(0, #PB_Shortcut_Control | #PB_Shortcut_O, 2)
    AddKeyboardShortcut(0, #PB_Shortcut_Control | #PB_Shortcut_S, 3)

    ;Меню
    If CreateMenu(0, WindowID(0))
        MenuTitle("Меню")
        MenuItem(1, "Создать"+Chr(9)+"Ctrl+N")
        MenuItem(2, "Открыть"+Chr(9)+"Ctrl+O")
        MenuItem(3, "Сохранить"+Chr(9)+"Ctrl+S")
    EndIf

    ;Панель инструментов
    If CreateToolBar(0, WindowID(0))
        ToolBarStandardButton(1, #PB_ToolBarIcon_New)
        ToolBarStandardButton(2, #PB_ToolBarIcon_Open)
        ToolBarStandardButton(3, #PB_ToolBarIcon_Save)
    EndIf

    Repeat
        Event = WaitWindowEvent()

        Select Event

            Case #PB_Event_Menu
                Select EventMenu()
                    Case 1 : Debug "Выбран пункт 'Создать'  или кнопка 'Создать'    или 'CTRL + N' на клавиатуре!"
                    Case 2 : Debug "Выбран пункт 'Открыть'  или кнопка 'Открыть'    или 'CTRL + O' на клавиатуре!"
                    Case 3 : Debug "Выбран пункт 'Сохранить'  или кнопка 'Сохранить'  или 'CTRL + S' на клавиатуре!"
                EndSelect

        EndSelect
    Until Event = #PB_Event_CloseWindow
EndIf

См. также

WindowEvent(), WaitWindowEvent()

Поддерживаемые OS

Все

<- EventGadget() - Оглавление Window - EventTimer()->