ターゲット アプリケーションにフックするアプリケーションを作成しており、ユーザーがアクティブ化すると、キーボードとマウスのすべてのウィンドウ メッセージがターゲット アプリケーションのウィンドウ プロシージャに到達しないようにします。私のアプリケーションは、 、 などの着信入力メッセージを に変換するWM_MOUSEMOVE
ことWM_NULL
でこれを行い、ウィンドウ プロシージャが入力が発生したことを認識しないようにします。
問題は、マウス入力が発生したときに Windows が自動的にWM_SETCURSOR
andWM_NCHITTEST
を window proc に送信することです (たとえば、アプリケーションが を呼び出したとき)。PeekMessage
これらのメッセージはウィンドウのメッセージ キューにポストされないため、WM_NULL に変更できません。
私は当初、window proc をサブクラス化し、単純WM_SETCURSOR
にWM_NCHITTEST
そこを無視することでこれを回避しましたが、サブクラス化は、私が夢中になっている一部のアプリケーションとの互換性の問題があるようです。
私の質問は次のとおりです。最初に生成されないようWM_SETCURSOR
にするにはどうすればよいですか、またはアプリケーションのウィンドウ プロシージャに到達しないようにするにはどうすればよいですか。WM_NCHITTEST