Java / SWT:如何从嵌入式窗口接收鼠标事件

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

我看到SWT中的操作系统类有许多有趣的方法来添加钩子,但我还是无法弄清楚如何使用它们。

有人可以帮忙吗?

谢谢

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

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

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