PureBasic

BindMenuEvent()

Синтаксис

BindMenuEvent(#Menu , MenuItem , @Callback())

Описание


Связывает событие указанного Меню с процедурой обратного вызова. Это дополнительный способ обработки событий в PureBasic, он без проблем работает со стандартными командами WindowEvent() и WaitWindowEvent(). Удалить связь события Меню с процедурой обратного вызова можно с помощью команды UnbindMenuEvent().

Параметры

#Menu Номер, идентифицирующий указанное Меню.
MenuItem Номер, идентифицирующий пункт Меню в рамках указанного Меню, событие которого требуется связать с процедурой обратного вызова.
@Callback() Адрес процедуры обратного вызова, которая будет вызываться при возникновении события. Она должна быть объявлена следующим образом:

Procedure EventHandler()
    ; Код
EndProcedure

В рамках процедуры обратного вызова доступны стандартные функции, такие как EventGadget(), EventWindow(), EventMenu(), EventType() и EventData(), которые позволяют получить дополнительную информацию о событии.

Примечание: функции WindowEvent() и WaitWindowEvent() никогда не должны вызываться изнутри процедуры обратного вызова, иначе программа может быть заблокирована или вести себя непредсказуемо.

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

Ничего.

Пример

Procedure TestHandler()
    Debug "Событие Меню - Тест"
EndProcedure

Procedure QuitHandler()
    Debug "Событие Меню - Выход"
    End
EndProcedure

OpenWindow(0, 100, 100, 200, 50, "Нажмите для теста", #PB_Window_SystemMenu)

CreateMenu(0, WindowID(0))
MenuTitle("Файл")
MenuItem(0, "Тест")
MenuItem(1, "Выход")

BindMenuEvent(0, 0, @TestHandler()) ; здесь привязка события пункта 0 Меню к процедуре обратного вызова @TestHandler()
BindMenuEvent(0, 1, @QuitHandler())    ; здесь привязка события пункта 1 Меню к процедуре обратного вызова @QuitHandler()

Repeat
    Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow

См. также

BindGadgetEvent(), UnbindMenuEvent(), UnbindEvent(), WindowEvent(), WaitWindowEvent()

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

Все

Оглавление Menu - CloseSubMenu() ->