是否将消息发送到不存在的窗口好吗?

时间:2014-07-02 18:08:01

标签: c++ multithreading mfc

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

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

它是否可以向该不存在的窗口发送消息?我假设它不应该造成任何伤害,但想要仔细检查。

1 个答案:

答案 0 :(得分:2)

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

如果使用NULL窗口句柄,则会将线程消息发布到当前线程消息队列。 SendMessage据我所知,我应该是无操作的 可能无害。

现在,我们变得棘手:

在特定的情况下,这并不重要,预先假定表现良好的应用程序。

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