修飾キー (Shift または Control) を押した状態でクリックすると、WndProc にマウスアップ通知が表示されません。修飾キーなしでそれらが表示され、修飾キーでマウスダウン通知が表示されます。
作成していないコンポーネントでユーザー アクションを追跡しようとしているので、Windows フォームの NativeWindow ラッパー (コンポーネントをラップ) を使用して、WndProc() メソッドから Windows メッセージを取得しています。
受け取った通知を追跡しようとしましたが、表示される唯一の手がかりは WM_CAPTURECHANGED です。WM_LBUTTONDOWN メッセージを受信したときに SetCapture を呼び出してみましたが、役に立ちません。
修飾子なし (ペイント、タイマー、および NCHITTEST メッセージをスキップ):
WM_PARENTNOTIFY
WM_MOUSEACTIVATE
WM_MOUSEACTIVATE
WM_SETCURSOR
WM_LBUTTONDOWN
WM_SETCURSOR
WM_MOUSEMOVE
WM_SETCURSOR
WM_LBUTTONUP
修飾子あり (ペイント、タイマー、および NCHITTEST メッセージをスキップ):
WM_KEYDOWN
WM_PARENTNOTIFY
WM_MOUSEACTIVATE
WM_MOUSEACTIVATE
WM_SETCURSOR
WM_LBUTTONDOWN
WM_SETCURSOR (repeats)
WM_KEYDOWN (repeats)
WM_KEYUP
マウス ボタンを長押しすると、通常は WM_LBUTTONUP 通知を受け取ることができますが、応答性を高めることができるはずです..
編集:マウスボタンを離す前に、目的のコンポーネントの外側でコントロールクリックしてカーソルをそこに移動しようとしましたが、WM_LBUTTONUP通知が表示されるため、マウスダウン時にコンポーネントがマウスをキャプチャしているように見えます. 別のウィンドウがマウスをキャプチャしたときにその通知を受け取る方法はありますか?
ありがとう。