Java/SWT: как получать события мыши из встроенного окна
Я встраиваю Windows-приложение в свое SWT-приложение, используя "reparenting". Эта часть работает нормально. Теперь я хотел бы подключить мое SWT-приложение к очереди сообщений для встроенного приложения, чтобы получать события перемещения мыши.
Я вижу, что класс ОС в SWT имеет ряд интересных методов для добавления хуков, но я не смог понять, как их использовать.
Кто-нибудь может помочь?
Спасибо
1 ответ
Это должно работать, но оно основано на использовании рефлексии для вызова не-API, поэтому используйте его на свой страх и риск.
Используйте отражение, чтобы сделать Display.addControl() и Display.removeControl() доступными. Затем используйте его для добавления HWND приложения Windows и элемента управления-владельца к экранному объекту. Теперь, когда событие перемещения мыши отправляется во встроенное приложение, соответствующий элемент управления должен получить событие перемещения мыши.
Для хорошей меры вы должны добавить DisposeListener в владеющий Control и вызвать removeControl (), чтобы события не отправлялись на мертвый HWND.