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
Все