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