2011-05-04 21 views
1

我試圖找出是否廣播信息將被髮送到消息僅適用於Windows,即作爲創建:WM_POWERBROADCAST不是僅郵件窗口,在Windows XP中收到

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

的事情是,我不得到任何廣播消息到該窗口...;)

+0

你是說你沒有得到任何* *廣播消息,或者只是你沒有得到'WM_POWERBROADCAST'? – 2011-05-04 14:09:41

+0

我也沒有收到WM_QUERYENDSESSION消息。事情是我讀過HWND_MESSAGE窗口沒有收到OS廣播的地方,並且你需要一個頂層窗口。但我還沒有發現任何文件支持/揭穿這... – Robert 2011-05-04 14:19:04

回答

1

您的懷疑是正確的。僅郵件窗口(那些通過爲CreateWindowEx函數的hwndParent參數指定HWND_MESSAGE創建)不接收廣播通知:

甲僅郵件窗口使您能夠發送和接收消息。它不可見,沒有z順序,不能枚舉,並且未收到廣播消息。窗口只是發送消息。

參考:MSDN

+0

RegisterPowerSettingNotification是Vista和更高版本,這個問題是在XP上) – Robert 2011-05-04 14:17:26

+0

@羅伯特:是的,沒問題。對不起,這不是你希望的答案。 ;-)但從文檔獲得確認總是很好的。只需創建一個頂層窗口,但沒有'WS_VISIBLE'風格。 – 2011-05-04 14:36:24

相關問題