【问题标题】:Java/SWT: How to receive mouse events from an embedded windowJava/SWT:如何从嵌入式窗口接收鼠标事件
【发布时间】:2009-05-07 13:53:12
【问题描述】:

我正在使用“reparenting”将一个 Windows 应用程序嵌入到我的 SWT 应用程序中。那部分工作正常。我现在想将我的 SWT 应用程序挂接到消息队列中,以便嵌入式应用程序接收鼠标移动事件。

我看到 SWT 中的 OS 类有许多有趣的方法来添加钩子,但我不知道如何使用它们。

谁能帮忙?

谢谢

【问题讨论】:

标签: java swt hook reparenting


【解决方案1】:

这应该可行,但它依赖于使用反射来调用非 API,因此使用它需要您自担风险。

使用反射使 Display.addControl() 和 Display.removeControl() 可访问。然后,使用它将 Windows 应用程序的 HWND 和拥有控件添加到 Display 对象。现在,当鼠标移动事件被发送到嵌入式应用程序时,相应的控件应该得到一个鼠标移动事件。

为了更好地衡量,您应该在拥有的控件上添加一个 DisposeListener 并调用 removeControl(),这样事件就不会被发送到死 HWND。

【讨论】:

  • +1。听起来不错。希望能尽快尝试一下
  • 我知道这是一个非常古老的问题,但是你有任何关于如何实现这个的例子吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-09
  • 2023-03-30
  • 2017-08-26
  • 2010-10-14
  • 2011-08-28
  • 2015-01-07
相关资源
最近更新 更多