5

マウスが特定の HWND の上にあるかどうかを確認するにはどうすればよいですか? 追跡するために WM_MOUSELEAVE および WM_MOUSEMOVE メッセージを使用しようとしましたが、ボタンをクリックしてマウスをボタンの外にドラッグすると、マウスが離されるまで WM_MOUSELEAVE を受け取りません。

ボタンをクリックすると、WM_COMMAND メッセージは次の場合にのみ送信 され
ます

この機能を複製する必要があります。

4

2 に答える 2

5

この機能を複製するにSetCapture()は、マウスがウィンドウから離れてもマウス メッセージがウィンドウに送信されるように呼び出します。現在のマウスの位置を読み取り、それがまだウィンドウ/ボタンの上にあるかどうかを判断できます (何をしているのかまだ 100% わかりません)。また、マウス ボタンを離すとReleaseCapture()、マウス メッセージの送信先を復元するために呼び出すことができます。

編集:ああ、Windows API 関数WindowFromPoint()を使用して、マウスがどのウィンドウ上にあるかを判断できます。

于 2010-12-21T00:32:56.867 に答える
2

これは Windows に組み込まれており、「マウス キャプチャ」、SetCapture(hWnd) と呼ばれます。マウスがウィンドウの外に移動した場合でも、マウス メッセージを確実に取得できます。WM_LBUTTONDOWN メッセージ通知で呼び出します。

于 2010-12-21T00:33:41.100 に答える