簡體   English   中英

如何在基於MFC對話框的應用程序中關閉主窗口

[英]How to close the main window in MFC dialog-based application

當我要關閉應用程序本身時,有人可以回答如何在基於MFC對話框的應用程序中關閉主窗口嗎? 該應用程序是在MS VS 2010中創建的。非常感謝。

尤金。

嘗試這個:

ASSERT( AfxGetMainWnd()!=NULL );
AfxGetMainWnd()->SendMessage(WM_CLOSE);

您可以將WM_CLOSE發送到對話框hwnd。 PostQuitMessage還應該允許結束應用程序執行。

這取決於您要在關閉過程中進行哪些處理。 如果您只想終止消息循環而不進行任何進一步的處理,則可以調用PostQuitMessage( exitCode ) exitCode將作為進程的退出代碼存儲。

如果要調用OK / Cancel處理程序,則必須分別調用OnOK()OnCancel() OnOK()的默認實現將嘗試保存和驗證對話框數據,並在成功執行后調用EndDialog( IDOK )以終止消息循環。 OnCancel()的默認實現只是調用EndDialog( IDCANCEL ) 兩種方法都不允許您為過程指定退出代碼。 如果您覆蓋了這兩個成員函數中的任何一個,則您需要在執行專用代碼后調用基類實現,除非您希望防止關機。

請記住, OnOK()OnCancel()CDialog[Ex]受保護成員,不能從外部直接訪問。 如果您需要從對話框類之外調用任何一個,則必須公開重寫它們。 您可以使用CMyDialog* pDlg = dynamic_cast< CMyDialog* >( AfxGetMainWnd() );指向主對話框的指針CMyDialog* pDlg = dynamic_cast< CMyDialog* >( AfxGetMainWnd() );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM