2010-01-23 83 views
0

我試圖捕獲WM_QUERYENDSESSION以在應用程序中保存一些數據,但似乎我沒有在用戶註銷/系統重新啓動時收到此消息,此時應用程序被最小化爲系統托盤。我怎樣才能抓住它?當最小化到系統托盤時未收到WM_QUERYENDSESSION

謝謝。

相關的代碼(沒有魔法在那裏,希望:)):

ON_WM_QUERYENDSESSION() 

BOOL CMainFrame::OnQueryEndSession() 
{ 
    AfxMessageBox(L"Are we hitting this?"); 

return FALSE; 
} 

對於我使用第三方LIB(CodeJock),我可能不能在這裏發表的托盤圖標,但通常它會創建一個隱藏窗口來處理消息,但主窗口在需要時只是ShowWindow(SW_HIDE)。也許我需要在那個隱藏的窗口中攔截那條消息並傳遞給它,我需要嘗試一下。

+1

我想我們需要看一些你的代碼。具體來說,托盤最小化和WM_QUERYENDSESSION代碼。 – 2010-01-23 07:56:05

+0

是的,這裏肯定需要看一些代碼。我發現MFC應用程序出現問題,WM_QES消息被IME幫助程序窗口返回FALSE(關閉高級文本服務解決了這個問題),但我從來沒有見過註銷工作但我的應用程序沒有看到消息的情況。 – 2010-01-23 14:12:12

+0

感謝您的回覆 - 我爲這個問題添加了更多解釋。我很樂意提供更多的代碼。 – dennisV 2010-01-25 10:46:25

回答

0

這基本上是由我需要修復的第三方課程吃掉的。

相關問題