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

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

有人可以帮忙吗?

由于

有帮助吗?

解决方案

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top