正在向不存在的窗口发送消息

Is sending message to a non-existent window Ok?

本文关键字:消息 窗口 不存在      更新时间:2023-10-16

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

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

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

不可以,不能向已删除的窗口发布消息。
我不能保证在上一个租户离开后,不会有人在那个地址开店。

如果你使用NULL窗口句柄,你将发布一个线程消息到当前线程消息队列。SendMessage,我可以谷歌应该是一个无操作。
可能是无害的。

现在,我们变得棘手了:

在特定情况下,这并不重要,前提是假定应用程序表现良好。

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