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