檢視原始碼 wxContextMenuEvent (wx v2.4.3)
這個類別用於上下文選單事件,發送給應用程式,使其有機會為 wxWindow
顯示上下文(快顯)選單。
請注意,如果 getPosition/1
返回 wxDefaultPosition,這表示事件起源於鍵盤的上下文按鈕事件,您應該自行計算合適的位置,例如呼叫 wx_misc:getMousePosition/0
。
請注意,在不同平台上,滑鼠事件的確切順序是不同的。例如,在 MSW 下,上下文選單事件是在 EVT_RIGHT_UP
事件之後產生,且僅在該事件未被處理時才產生,但在 GTK 下,上下文選單事件是在 EVT_RIGHT_DOWN
事件之後產生。這是正確的,因為它確保了上下文選單是根據目前平台的 UI 慣例顯示的,同時也意味著如果您打算處理 EVT_CONTEXT_MENU
事件,則您不得處理(或在您的處理程式中呼叫 wxEvent:skip/2
)滑鼠右鍵按下或滑鼠右鍵抬起事件。
請參閱
這個類別繼承自下列類別,並可以使用其函式:
wxWidgets 文件: wxContextMenuEvent
事件
使用 wxEvtHandler:connect/3
與 wxContextMenuEventType
來訂閱此類型的事件。
摘要
類型
-type wxContextMenu() :: #wxContextMenu{type :: wxContextMenuEvent:wxContextMenuEventType(), pos :: {X :: integer(), Y :: integer()}}.
-type wxContextMenuEvent() :: wx:wx_object().
-type wxContextMenuEventType() :: context_menu.
函式
-spec getPosition(This) -> {X :: integer(), Y :: integer()} when This :: wxContextMenuEvent().
返回選單應該顯示的螢幕座標位置。
使用 wxWindow:screenToClient/2
來轉換為客戶端座標。
您也可以在 wxWindow:popupMenu/4
中省略位置,以便使用目前的滑鼠指標位置。
如果事件起源於鍵盤事件,則此函式返回的值將為 wxDefaultPosition。
-spec setPosition(This, Point) -> ok when This :: wxContextMenuEvent(), Point :: {X :: integer(), Y :: integer()}.
設定選單應該顯示的位置。