gpt4 book ai didi

windows - 即使在 MessageBox 期间,应用程序也会 GetMessage 吗?

转载 作者:行者123 更新时间:2023-11-30 16:44:33 24 4
gpt4 key购买 nike

在处理 WM_TIMER 时,我调用了 MessageBox。结果,弹出了一个消息框,显示计时器的频率。因此,我相信应用程序正在尝试继续处理排队/非排队消息,即使在 MessageBox 期间也是如此。

我说得对吗?

我知道根据 MSDN,当应用程序将消息发送到与发送线程不同的线程时,发送线程将尝试在 SendMessage 返回之前处理它收到的非排队消息 - -- 即在目标线程回复之前。

除了 MessageBoxSendMessage 之外,还有其他函数可以在队列/非队列消息返回之前尝试继续处理它们吗?我需要知道这一点以确定窗口过程中调用的任何函数是否应该是可重入的。

另外两个相关问题是1) 直到窗口消息处理程序返回后DispatchMessage才返回吗?2) 如果当前DispatchMessage还没有返回,GetMessage会不会再次被调用?

最佳答案

模式对话框使用调用线程的消息队列在内部运行自己的消息循环。您正在 WM_TIMER 处理程序中调用 MessageBox(),因此 MessageBox() 内部的消息循环正在接收和调度后续的 WM_TIMER 消息框运行时显示消息。

关于windows - 即使在 MessageBox 期间,应用程序也会 GetMessage 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44424445/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com