【问题标题】:Mouse hold in wxWidgetwxWidget 中的鼠标按住
【发布时间】:2018-06-20 17:18:56
【问题描述】:

我在 wxWidget 中制作了 w 图。我想通过按住左键来启用它。我的想法是捕获所有鼠标事件,在向下单击后移动图形并在向上单击后转义该功能。你有更好的想法吗?

提前谢谢你。

【问题讨论】:

  • 您只需要处理wxEVT_LEFT_DOWNwxEVT_LEFT_UP鼠标事件。在wxEVT_LEFT_DOWN 处理程序中,测试event.Dragging()
  • 用户会明白,每次鼠标拖动时,您都会在新位置强制重绘图表,并且在左上事件中也是如此。

标签: wxwidgets


【解决方案1】:

您需要使用CaptureMouse() 来执行此操作。不要忘记稍后调用ReleaseMouse(),重要的是,还要处理鼠标捕获丢失事件(请参阅上面的文档链接),因为您的程序总是会意外丢失捕获,例如如果用户切换到另一个应用程序。

【讨论】:

  • CaptureMouse() 如果您打算将图形移出其窗口,进入另一个窗口,则很有用。如果仅在其窗口内发生移动,是否也需要它?
  • 如果只是在捕获中断时取消移动。一般来说,任何涉及多个鼠标事件的鼠标操作都应该捕获鼠标。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多