查看源代码 wxMenuEvent (wx v2.4.3)

这个类用于各种与菜单相关的事件。

请注意,这些不包括菜单命令事件,后者使用 wxCommandEvent 对象处理。

此类的事件由作为 wxMenuBar 一部分、附加到 wxFrame 的菜单以及由 wxWindow:popupMenu/4 显示的弹出菜单生成。它们被发送到以下对象,直到其中一个对象处理该事件:-# 菜单对象本身,由 GetMenu() 返回,如果有的话。 -# 附加此菜单的 wxMenuBar,如果有的话。 -# 与菜单关联的窗口,例如为弹出菜单调用 PopupMenu() 的窗口。 -# 如果该窗口与其自身不同,则该窗口的顶层父级。 这类似于菜单项生成的命令事件,但与它们不同的是,wxMenuEvent 仅发送到窗口本身及其顶层父级,而不发送到层次结构中的任何中间窗口。

wxFramewxEVT_MENU_HIGHLIGHT 的默认处理程序会在状态栏中显示帮助文本,请参阅 wxFrame:setStatusBarPane/2

请参阅

此类派生自以下类,并可以使用其函数:

wxWidgets 文档:wxMenuEvent

事件

使用 wxEvtHandler:connect/3wxMenuEventType 来订阅此类型的事件。

概要

函数

返回正在打开或关闭的菜单,或包含突出显示项的菜单。

返回与事件关联的菜单标识符。

如果正在打开或关闭的菜单是弹出菜单,则返回 true;如果是普通菜单,则返回 false。

类型

-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 版本开始,此函数可以与 OPENCLOSEHIGHLIGHT 事件一起使用。在 3.1.3 版本之前,此方法只能与 OPENCLOSE 事件一起使用。

-spec getMenuId(This) -> integer() when This :: wxMenuEvent().

返回与事件关联的菜单标识符。

此方法应仅与 HIGHLIGHT 事件一起使用。

-spec isPopup(This) -> boolean() when This :: wxMenuEvent().

如果正在打开或关闭的菜单是弹出菜单,则返回 true;如果是普通菜单,则返回 false。

此方法应仅与 OPENCLOSE 事件一起使用。