WM_TIMER の処理中にMessageBoxを呼び出しました。その結果、メッセージ ボックスにタイマーの頻度が表示されました。そのため、アプリケーションはMessageBox 中でもキューに入れられた/キューに入れられていないメッセージを処理し続けようとしていたと思います。
私は正しいですか?
MSDN によると、アプリケーションが送信スレッドとは別のスレッドにメッセージを送信している間、送信スレッドは、SendMessageが返される前、つまりターゲット スレッドが応答する前に、受信したキューに入れられていないメッセージを処理しようとします。
MessageBoxとSendMessage以外に、キューに入れられた/キューに入れられていないメッセージを処理し続けようとする関数はありますか? Window プロシージャで呼び出される関数を再入可能にする必要があるかどうかを判断するには、そのことを知る必要があります。
もう 2 つの関連する質問は、1)ウィンドウ プロシージャが返されるまでDispatchMessageは返されませんか? 2)現在のDispatchMessageがまだ返されていない場合、GetMessageは再度呼び出されませんか?