2009-05-07 10 views
1

私は、「reparenting」を使用して、SWTアプリケーションにWindowsアプリケーションを埋め込みます。その部分はうまくいく。私は今、マウスの移動イベントを受け取るために埋め込まれたアプリケーションのためのメッセージキューに私のSWTアプリをフックしたいと思います。Java/SWT:埋め込みウィンドウからマウスイベントを受け取る方法

SWTのOSクラスには、フックを追加するための興味深いメソッドがいくつかありますが、それらを使用する方法を理解できていません。

誰でも手助けできますか?

おかげ

+0

これは良い質問です。おそらく恩恵は順番ですか? (私は答えを投稿してみたい) – Jared

答えて

2

これは動作するはずですが、それは非APIを呼び出すので、ご自身の責任でそれを使用するためにリフレクションを使用することに依存しています。

Display.addControl()およびDisplay.removeControl()にアクセスできるようにリフレクションを使用します。次に、それを使用して、WindowsアプリケーションのHWNDと所有するコントロールをDisplayオブジェクトに追加します。今、マウスの移動イベントが埋め込みアプリケーションに送信されると、対応するコントロールはマウス移動イベントを取得する必要があります。

対策を講じるには、所有しているControlにDisposeListenerを追加し、removeControl()を呼び出して、イベントがデッドHWNDに送られないようにする必要があります。

+0

+1。興味深いですね。すぐにこれを試すことができることを願っています – paul

関連する問題