Java / SWT: как получать события мыши из встроенного окна - PullRequest
1 голос
/ 07 мая 2009

Я встраиваю Windows-приложение в мое SWT-приложение, используя «reparenting». Эта часть работает нормально. Теперь я хотел бы подключить мое приложение SWT к очереди сообщений для встроенного приложения, чтобы получать события перемещения мыши.

Я вижу, что класс ОС в SWT имеет ряд интересных методов для добавления хуков, но я не смог понять, как их использовать.

Может кто-нибудь помочь?

Спасибо

1 Ответ

2 голосов
/ 03 июня 2009

Это должно сработать, но оно основано на использовании отражения для вызова не-API, поэтому используйте его на свой страх и риск.

Используйте отражение, чтобы сделать Display.addControl () и Display.removeControl () доступными. Затем используйте его для добавления HWND приложения Windows и элемента управления-владельца к экранному объекту. Теперь, когда событие перемещения мыши отправляется во встроенное приложение, соответствующий элемент управления должен получить событие перемещения мыши.

Для правильной меры вы должны добавить DisposeListener в владеющий элемент управления и вызвать removeControl (), чтобы события не отправлялись мертвому HWND.

...