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