檢視原始碼 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
事件。