1. 模態對話框和非模態對話框的區別 less
Windows中對話框分爲模態對話框和非模態對話框。 函數
模態對話框是指當該對話框顯示後,會屏蔽其父窗口的操做,只容許操做當前對話框。 spa
如:文本文檔中的[打開]對話框 code
非模態對話框是指當該對話框顯示後,還能夠在其父窗口中進行其餘操做。 資源
如:文本文檔中的[查找]對話框 文檔
2. 模態對話框和非模態對話框建立實例 回調函數
2.1 新建MFC工程,建立一個「基於對話框」的程序,對話框上會自動生成[肯定]和[取消]按鈕。 class
2.2 在該工程中,打開「資源視圖」,在「Dialog」節點中插入一個對話框,將其ID設爲:IDD_DIALOG。 程序
2.3 雙擊[肯定]按鈕,在其回調函數中添加相應程序。 im
建立模態對話框
void CMfcDialogDlg::OnBnClickedOk() { ModalDialog *myModalDialog=new ModalDialog; myModalDialog->DoModal(); }
建立非模態對話框
void CMfcDialogDlg::OnBnClickedOk() { CDialog *dlg=new CDialog; dlg->Create(IDD_DIALOG); dlg->ShowWindow(SW_SHOW); }
另:
」令其父窗口無效,直到對話框結束「------Modal對話框
」父窗口與對話框共同運行「------Modeless對話框
摘自:《深刻淺出MFC》P27