マウスが特定の HWND の上にあるかどうかを確認するにはどうすればよいですか? 追跡するために WM_MOUSELEAVE および WM_MOUSEMOVE メッセージを使用しようとしましたが、ボタンをクリックしてマウスをボタンの外にドラッグすると、マウスが離されるまで WM_MOUSELEAVE を受け取りません。
ボタンをクリックすると、WM_COMMAND メッセージは次の場合にのみ送信
され
ます
。
この機能を複製する必要があります。
マウスが特定の HWND の上にあるかどうかを確認するにはどうすればよいですか? 追跡するために WM_MOUSELEAVE および WM_MOUSEMOVE メッセージを使用しようとしましたが、ボタンをクリックしてマウスをボタンの外にドラッグすると、マウスが離されるまで WM_MOUSELEAVE を受け取りません。
ボタンをクリックすると、WM_COMMAND メッセージは次の場合にのみ送信
され
ます
。
この機能を複製する必要があります。
この機能を複製するにSetCapture()
は、マウスがウィンドウから離れてもマウス メッセージがウィンドウに送信されるように呼び出します。現在のマウスの位置を読み取り、それがまだウィンドウ/ボタンの上にあるかどうかを判断できます (何をしているのかまだ 100% わかりません)。また、マウス ボタンを離すとReleaseCapture()
、マウス メッセージの送信先を復元するために呼び出すことができます。
編集:ああ、Windows API 関数WindowFromPoint()
を使用して、マウスがどのウィンドウ上にあるかを判断できます。
これは Windows に組み込まれており、「マウス キャプチャ」、SetCapture(hWnd) と呼ばれます。マウスがウィンドウの外に移動した場合でも、マウス メッセージを確実に取得できます。WM_LBUTTONDOWN メッセージ通知で呼び出します。