【问题标题】:Get click position on a canvas in a handler of a context-menu在上下文菜单的处理程序中获取画布上的点击位置
【发布时间】:2015-06-07 22:21:41
【问题描述】:

我有一个 Eclipse RCP 应用程序,其中注册了一个菜单贡献,因此当用户右键单击定义视图中的特殊画布时,将自动显示上下文菜单。

现在,在某些处理程序中,我希望能够在显示上下文菜单时获取鼠标坐标,即用户在画布上单击的位置。这些处理程序将由在此上下文菜单中定义的命令执行。

处理程序的执行方法中的 ExecutionEvent 不提供此信息。

如何获取用户单击的光标位置以打开上下文菜单?

【问题讨论】:

    标签: eclipse location coordinates contextmenu rcp


    【解决方案1】:

    如果上下文菜单是通过鼠标事件打开的,那么 ExecutionEvent.getTrigger() 将是 SWT MouseDown 事件,其中包含正确的坐标。

    【讨论】:

    • 即使这个问题已经 2 岁了:我和提出这个问题的用户有同样的问题。我没有通过您的解决方案获得任何与职位相关的信息。我希望有人可以帮助我。多年来,我一直在寻找解决方案。
    • 你通过getTrigger()得到什么?
    • 没有真实坐标。无论我在哪里打开上下文菜单:Event {type=13 MenuItem {Copy Ctrl+C} time=3695913 data=null x=0 y=0 width=0 height=0 detail=0}
    • 所以你已经通过一个菜单项激活了你的命令......然后你就卡住了。您可以在画布上添加鼠标侦听器以获取用户单击的最后一个位置 - 娱乐画布中的一种选定点 - 但是您还需要在画布上添加某种视觉辅助,以便用户可以“看”重点。
    • 好吧,你的问题是,如果使用画布的内容菜单激活命令,则触发器只是一个 SWT 事件。如果您浏览主菜单栏,那么您会被卡住并需要执行其他操作。
    猜你喜欢
    • 2021-10-05
    • 1970-01-01
    • 2016-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多