处理WM_TIMER时,我称 MessageBox 。结果,一个消息框随计时器的频率而弹出。因此,我相信该应用程序即使在 MessageBox 中也试图继续处理排队/非流行消息。
我对吗?
我知道,根据MSDN,当应用程序从发送线程发送到其他线程时,发送线程将尝试处理它在 sendmessage returns> returns -return -return之前接收到的非流行消息 - - 即在目标线程回复之前。
除 MessageBox 和 sendmessage 外,还有其他功能可以在返回之前继续处理排队/非流行消息吗?我需要知道这一点,以确定在窗口过程中调用的任何功能是否应重新进入。
另外两个相关问题是1) dispatchMessage 在窗口过程返回之前不返回?2)如果当前 dispatchMessage 尚未返回?
模态对话框使用调用线程的消息队列在内部运行自己的消息循环。您在WM_TIMER
处理程序内调用MessageBox()
,因此MessageBox()
内部的消息循环正在接收和派遣随后的WM_TIMER
消息。