在程序的调试版本中,我创建了一个可见窗口,并且WM_QUERYENDSESSION消息由WNDPROC.在发行版本中,窗口应该是消息而已,所以我指定HWND_MESSAGE的hWndParent调用时CreateWindowEx().不幸的是,我再也没有收到WM_QUERYENDSESSION消息了.是WM_QUERYENDSESSION提到的广播消息的一个位置?"仅消息窗口[...]不接收广播消息."
MSDN为"仅消息窗口"提供了一个不错的定义:
只有消息的窗口使您可以发送和接收消息.它不可见,没有z顺序,无法枚举,也不接收广播消息.该窗口只是调度消息.
突出了相关细节.
您可以使用它们来利用您自己的代码中的消息调度机制.最常见的是让工作线程以线程安全的方式与UI线程通信.消息循环是生产者 - 消费者问题的通用解决方案.COM中的公寓编组实现了一个仅消息窗口.显然,这样的窗口应该是隐藏的,只能获取应用程序定义的消息.
调用CreateWindowEx时,不要将HWND_MESSAGE用作hWndParent.
| 归档时间: |
|
| 查看次数: |
1137 次 |
| 最近记录: |