質問
ウィンドウを作成しようとしていますあなたはそれの外側をクリックします、そして現時点では、WndProc関数を処理することでそれを検討しています。
これまでに受け取ったメッセージはどれも役に立たないようですが、まったく理解していないメッセージがいくつかあります。 0x0118、0xC123、0xC128、0xC12Eのコードは何を表していますか?
解決
0x0118:キャレットの点滅に使用されるWM_SYSTIMER(文書化されていない)
他の3つはアプリケーション定義のメッセージ(0xC000から0xFFFFの範囲内のすべて)であるため、どこにも定義されたメッセージは見つかりません。
他のヒント
簡単な方法は、マウスをキャプチャすることです。マウスをキャプチャすると、ウィンドウの外でワンクリックイベントが発生し、キャプチャがオフになります。
より難しい方法は、低レベルのマウスウィンドウフックを設定することです。グローバルフックを実行するには、アンマネージDLLにフックコードを配置する必要があります。
本当に簡単な方法は、フォームが非アクティブになったときにフォームを閉じることです。
編集:
おっと。メッセージIDに関する直接の質問には答えなかったことに気付きました。メッセージ0x118はwinuser.hで定義されていないため、文書化されていないメッセージIDであると想定しています。 0xC000〜0xFFFFの範囲のメッセージIDは、アプリケーション定義のメッセージです。これらのIDは、 RegisterWindowMessage
によって返されます。
所属していません StackOverflow