Windows XP中的仅消息窗口未接收WM_POWERBROADCAST

Windows XP中的仅消息窗口未接收WM_POWERBROADCAST,windows,winapi,windows-xp,broadcast,windows-messages,Windows,Winapi,Windows Xp,Broadcast,Windows Messages,我正在尝试确定广播消息是否将发送到仅限消息的窗口,即创建为: hWnd = CreateWindow(MAKEINTATOM(RegisterClass(&wnd)), NULL, 0, 0, 0, 0, 0, 0, HWND_MESSAGE, hInstance, 0); 问题是我没有收到任何广播信息到那个窗口…;) 你的怀疑是对的。仅消息窗口(通过为CreateWindowEx函数的hwndParent参数指定HWND\u消息创建的窗口)不接收广播通知: 只有消息窗口允许您发送和接

我正在尝试确定广播消息是否将发送到仅限消息的窗口,即创建为:

hWnd = CreateWindow(MAKEINTATOM(RegisterClass(&wnd)), NULL, 0, 0, 0, 0, 0, 0, HWND_MESSAGE, hInstance, 0);

问题是我没有收到任何广播信息到那个窗口…;)

你的怀疑是对的。仅消息窗口(通过为
CreateWindowEx
函数的
hwndParent
参数指定
HWND\u消息创建的窗口)不接收广播通知:

只有消息窗口允许您发送和接收消息。它不可见,没有z顺序,无法枚举,不接收广播消息。窗口只是发送消息


参考资料:

您是说您没有收到任何广播消息,还是只是说您没有收到
WM\u POWERBROADCAST
?我也没有收到WM\u QUERYENDSESSION消息。问题是,我在某个地方读到HWND_消息窗口不接收操作系统广播,而您需要一个顶级窗口。但是我还没有找到任何文档来支持/揭穿这个…RegisterPowerSettingNotification是Vista,更高版本,这个问题在XP上;)@罗伯特:是的,没问题。抱歉,这不是您希望的答案。;-)但从文件中得到确认总是好的。只需创建一个顶级窗口,但不使用
WS\u VISIBLE
样式。