Java / SWT:埋め込みウィンドウからマウスイベントを受け取る方法
-
08-07-2019 - |
質問
'reparenting'を使用して、SWTアプリケーションにWindowsアプリケーションを埋め込みます。その部分は大丈夫です。埋め込みアプリがマウス移動イベントを受信できるように、SWTアプリをメッセージキューにフックします。
SWTのOSクラスには、フックを追加するための興味深いメソッドが数多くあることがわかりますが、それらの使用方法を理解できませんでした。
誰でも助けてもらえますか?
ありがとう
解決
これは機能するはずですが、リフレクションを使用して非APIを呼び出すことに依存しているため、自己責任で使用してください。
リフレクションを使用して、Display.addControl()およびDisplay.removeControl()をアクセス可能にします。次に、それを使用して、WindowsアプリケーションのHWNDと所有コントロールをDisplayオブジェクトに追加します。これで、マウス移動イベントが埋め込みアプリに送信されると、対応するコントロールがマウス移動イベントを取得する必要があります。
適切な測定のために、所有しているコントロールにDisposeListenerを追加し、removeControl()を呼び出して、イベントがデッドHWNDに送信されないようにする必要があります。
所属していません StackOverflow