繁体   English   中英

将消息发送到不存在的窗口可以吗?

[英]Is sending message to a non-existent window Ok?

我有一个线程将更新消息发送到窗口,我使用::SendMessage()::PostMessage() API。

我进入和退出多个对话框,并通过窗口句柄( m_hWnd )将我当前所在的对话框注册到线程中。 如果我完全退出,则主应用程序窗口将无法处理这些消息。 因此,我没有注册该窗口。 此时,线程将具有一个较旧窗口的句柄,该窗口现在不存在。

如果它可以向不存在的窗口发送消息,可以吗? 我认为它应该不会造成任何伤害,但想再次检查。

不,将消息发布到已删除的窗口是不行的。
不能保证没有人会在前一个租户离开后立即在该地址开设商店。

如果使用NULL窗口句柄,则会将线程消息发布到当前线程消息队列中。 就Google而言, SendMessage应该是无人操作的。
可能足够无害。

现在,我们变得棘手:

在特定情况下,这并不重要,只要预先假设行为良好的应用程序即可。

  1. WM_NULL这样的消息不应使任何事情发生。
  2. 如果可以保证在此期间创建的所有应用程序都不会阻塞窗口,则可以使用RegisterWindowMessage在应用程序中全局注册的窗口消息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM