2009-03-24 8 views
1

は、以下の私のメッセージフィルタです。ただし、ウィンドウの閉じるボタンをクリックした後にディスパッチされたメッセージは受信されません(WM_CLOSEWM_DESTROYWM_NCDESTROYおよびWM_QUIT)。どうしてこれなの?WM_DESTROY、WM_CLOSEバイパスIMessageFilterを

答えて

6

IMessageFilter.PreFilterMessage()は、メッセージキュー内のメッセージに対してのみ呼び出されます。 WM_CLOSEのようなメッセージはSendMessage()でWndProc()に直接送られ、キューをバイパスします。また、WM_ACTIVATE、WM_GETTEXTなどのメッセージは表示されません。

+0

WM_LBUTTONDOWNはどうですか?そして、どのメッセージがWndProcに直接送信され、どのメッセージがメッセージキューに送信されるのかはどこで知ることができますか? –

+0

WM_LBUTTONDOWNは通常送信され、送信されません。メッセージを生成するコードによって異なります。 –

関連する問題