gpt4 book ai didi

c - 请问 MessageBox() "eat"我的用户自定义消息?

转载 作者:太空宇宙 更新时间:2023-11-04 01:58:42 27 4
gpt4 key购买 nike

我有一个 UI 线程和另一个线程,我想使用 PostMessage() 从另一个 trhead 向 UI 线程发送一条用户定义的消息。

如果UI线程显示一个消息框,然后我发送用户自定义消息,消息框的消息循环是否会从UI线程消息队列中获取用户自定义消息,从而获取用户自定义消息会丢失吗?!

最佳答案

PostMessage() 不是问题。 MessageBox() 运行自己的消息循环使消息框成为模态,但调用 DispatchMessage() 并且该函数确保调用正确的窗口过程发布/发送到任何窗口的任何消息。

只有在调用 PostThreadMessage() 时才会犯此错误。如果接收线程显示对话框或进入模态循环,那将永远不安全。 Raymond Chen 写了几篇关于此的博客文章:

Thread messages are eaten by modal loops

Why do messages posted by PostThreadMessage disappear?

一个可能的极端情况是发布一条消息,它需要消息循环而不是窗口过程来处理消息。就像快捷键一样。

关于c - 请问 MessageBox() "eat"我的用户自定义消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30187377/

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