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

StackOverflow https://stackoverflow.com/questions/834771

  •  08-07-2019
  •  | 
  •  

Вопрос

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

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

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

Спасибо

Это было полезно?

Решение

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top