1
は、以下の私のメッセージフィルタです。ただし、ウィンドウの閉じるボタンをクリックした後にディスパッチされたメッセージは受信されません(WM_CLOSE
、WM_DESTROY
、WM_NCDESTROY
およびWM_QUIT
)。どうしてこれなの?WM_DESTROY、WM_CLOSEバイパスIMessageFilterを
は、以下の私のメッセージフィルタです。ただし、ウィンドウの閉じるボタンをクリックした後にディスパッチされたメッセージは受信されません(WM_CLOSE
、WM_DESTROY
、WM_NCDESTROY
およびWM_QUIT
)。どうしてこれなの?WM_DESTROY、WM_CLOSEバイパスIMessageFilterを
IMessageFilter.PreFilterMessage()は、メッセージキュー内のメッセージに対してのみ呼び出されます。 WM_CLOSEのようなメッセージはSendMessage()でWndProc()に直接送られ、キューをバイパスします。また、WM_ACTIVATE、WM_GETTEXTなどのメッセージは表示されません。
WM_LBUTTONDOWNはどうですか?そして、どのメッセージがWndProcに直接送信され、どのメッセージがメッセージキューに送信されるのかはどこで知ることができますか? –
WM_LBUTTONDOWNは通常送信され、送信されません。メッセージを生成するコードによって異なります。 –