2008-08-18 53 views

回答

10

編程方式終止MFC應用程序

void ExitMFCApp() 
    { 
     // same as double-clicking on main window close box 
     ASSERT(AfxGetMainWnd() != NULL); 
     AfxGetMainWnd()->SendMessage(WM_CLOSE); 
    } 

http://support.microsoft.com/kb/117320

+0

任何C#的等效代碼? – 2015-07-21 03:30:23

12
AfxGetMainWnd()->PostMessage(WM_CLOSE); 
4

支持@ Mike的回答,使用此方法的原因是要觸發正確的關閉順序。對於MDI/SDI應用程序尤其重要,因爲它可以讓文檔在退出之前提示保存或取消退出。

@馬特野口,你的方法繞過這個序列(這可能是預期的效果,我想,但你可能已經有了問題如果你短路正常拆解。

4
PostQuitMessage([exit code]); 
1

如果它是一個基於對話框的應用程序,您可以通過調用的EndDialog()函數做到這一點。

如果它是一個SDI/MDI基於應用程序可以調用DestroyWindow。但在此之前,你需要做自己的清理(關閉文檔,釋放內存和資源,破壞所有額外的窗口創建等)。