查看源代码 wxMenuEvent (wx v2.4.3)
这个类用于各种与菜单相关的事件。
请注意,这些不包括菜单命令事件,后者使用 wxCommandEvent
对象处理。
此类的事件由作为 wxMenuBar
一部分、附加到 wxFrame
的菜单以及由 wxWindow:popupMenu/4
显示的弹出菜单生成。它们被发送到以下对象,直到其中一个对象处理该事件:-# 菜单对象本身,由 GetMenu() 返回,如果有的话。 -# 附加此菜单的 wxMenuBar,如果有的话。 -# 与菜单关联的窗口,例如为弹出菜单调用 PopupMenu() 的窗口。 -# 如果该窗口与其自身不同,则该窗口的顶层父级。
这类似于菜单项生成的命令事件,但与它们不同的是,wxMenuEvent
仅发送到窗口本身及其顶层父级,而不发送到层次结构中的任何中间窗口。
wxFrame
中 wxEVT_MENU_HIGHLIGHT
的默认处理程序会在状态栏中显示帮助文本,请参阅 wxFrame:setStatusBarPane/2
。
请参阅
此类派生自以下类,并可以使用其函数:
wxWidgets 文档:wxMenuEvent
事件
使用 wxEvtHandler:connect/3
和 wxMenuEventType
来订阅此类型的事件。
概要
类型
-type wxMenu() :: #wxMenu{type :: wxMenuEvent:wxMenuEventType(), menuId :: integer(), menu :: wxMenu:wxMenu()}.
-type wxMenuEvent() :: wx:wx_object().
-type wxMenuEventType() :: menu_open | menu_close | menu_highlight.
函数
-spec getMenu(This) -> wxMenu:wxMenu() when This :: wxMenuEvent().
返回正在打开或关闭的菜单,或包含突出显示项的菜单。
请注意,如果正在打开的菜单没有相应的 wxMenu
,则返回的值可以为 NULL,例如,当在 wxMSW 端口中打开系统菜单时会发生这种情况。
备注:从 3.1.3 版本开始,此函数可以与 OPEN
、CLOSE
和 HIGHLIGHT
事件一起使用。在 3.1.3 版本之前,此方法只能与 OPEN
和 CLOSE
事件一起使用。
-spec getMenuId(This) -> integer() when This :: wxMenuEvent().
返回与事件关联的菜单标识符。
此方法应仅与 HIGHLIGHT
事件一起使用。
-spec isPopup(This) -> boolean() when This :: wxMenuEvent().
如果正在打开或关闭的菜单是弹出菜单,则返回 true;如果是普通菜单,则返回 false。
此方法应仅与 OPEN
和 CLOSE
事件一起使用。