我有一个线程将更新消息发送到窗口,我使用::SendMessage()
和::PostMessage()
API。
我进出多个对话框,并通过窗口句柄(m_hWnd
)在线程中注册我当前所在的对话框。如果我完全退出,则主应用程序窗口将无法处理这些消息。因此,我没有注册该窗口。此时,线程将具有一个较旧窗口的句柄,该窗口现在不存在。
如果它可以向不存在的窗口发送消息,可以吗?我认为它应该不会造成任何伤害,但想再次检查。
最佳答案
不,将消息发布到已删除的窗口是不行的。
不能保证没有人会在前一个租户离开后立即在该地址开设商店。
如果使用NULL
窗口句柄,则会将线程消息发布到当前线程消息队列中。据我所知,SendMessage
谷歌应该是无人值守。
可能足够无害。
现在,我们变得棘手:
在特定情况下,这并不重要,只要预先假设行为良好的应用程序即可。
像WM_NULL
这样的消息不应使任何事情发生。
如果您可以保证在此期间创建的所有应用程序窗口均不会阻塞,则使用RegisterWindowMessage在您的应用程序中全局注册的窗口消息。
关于c++ - 将消息发送到不存在的窗口可以吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24538108/