查看源代码 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/3wxContextMenuEventType 来订阅此类事件。

摘要

函数

返回应该显示菜单的屏幕坐标位置。

设置应该显示菜单的位置。

类型

-type wxContextMenu() ::
          #wxContextMenu{type :: wxContextMenuEvent:wxContextMenuEventType(),
                         pos :: {X :: integer(), Y :: integer()}}.
-type wxContextMenuEvent() :: wx:wx_object().
此类型的链接

wxContextMenuEventType()

查看源代码
-type wxContextMenuEventType() :: context_menu.

函数

-spec getPosition(This) -> {X :: integer(), Y :: integer()} when This :: wxContextMenuEvent().

返回应该显示菜单的屏幕坐标位置。

使用 wxWindow:screenToClient/2 转换为客户区坐标。

您也可以从 wxWindow:popupMenu/4 中省略位置,以便使用当前鼠标指针位置。

如果事件源自键盘事件,则此函数返回的值将为 wxDefaultPosition。

此函数的链接

setPosition(This, Point)

查看源代码
-spec setPosition(This, Point) -> ok
                     when This :: wxContextMenuEvent(), Point :: {X :: integer(), Y :: integer()}.

设置应该显示菜单的位置。