加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 甚至在MessageBox期间应用程序GetMessage?

发布时间:2020-12-13 20:35:33 所属栏目:Windows 来源:网络整理
导读:在处理WM_TIMER时,我调用了MessageBox.结果,弹出一个带有计时器频率的消息框.所以我相信应用程序试图继续处理排队/非排队的消息,即使在MessageBox期间. 我对吗? 我知道根据MSDN,当应用程序向发送线程的不同线程发送消息时,发送线程将尝试处理它在SendMessag
在处理WM_TIMER时,我调用了MessageBox.结果,弹出一个带有计时器频率的消息框.所以我相信应用程序试图继续处理排队/非排队的消息,即使在MessageBox期间.

我对吗?

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

除了MessageBox和SendMessage之外,是否还有其他功能可以在返回之前继续处理排队/非排队的消息?我需要知道这一点,以确定在Window过程中调用的任何函数是否应该是可重入的.

另外两个相关问题是
1)在窗口过程返回之前,DispatchMessage是否会返回?
2)如果当前的DispatchMessage尚未返回,是否会再次调用GetMessage?

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读