2011-07-25 27 views
0

我似乎無法在我的mfc應用程序代碼中找到任何退出功能。 我想要我的應用程序實際保存一些設置,當我點擊應用程序右上角的紅色十字。任何人都知道這個退出功能位於哪裏?謝謝其中是MFC應用程序的退出函數?

回答

7

取決於它是什麼類型的應用程序。檢查CWinApp::ExitInstance這將被稱爲總是。您還可以看看CDialog::OnCancelCWnd::OnCloseCWnd::OnDestroyCFrameWnd::OnNcDestroy

+0

WM_CLOSE(http://msdn.microsoft.com/zh-cn/library/ms632617(VS.85).aspx)是Windows發送的用於指示窗口被請求關閉的Windows消息。根據窗口的類型,將調用上面列出的方法之一。如果你正在做簡單的Win32 C編程,那麼請看這裏的例子,瞭解如何處理WM_CLOSE(http://www.winprog.org/tutorial/simple_window.html)。 – yasouser

+0

WM_DESTROY之前發送WM_CLOSE - 對於對話框,它會調用OnCancel。 – Ajay

2

如果它是一個基於對話框的應用程序,我更喜歡下面的代碼

void CMFC_dialogDlg::OnOK() 
{ 
} 

void CMFC_dialogDlg::OnCancel() 
{ 

} 

void CMFC_dialogDlg::OnClose() 
{ 
    //Call Save Function 
    CDialog::OnOK(); 
} 

加入以下代碼後,我會去除OK和取消按鈕對話框,這樣我可以在按Esc/Enter鍵的同時阻止應用程序關閉。