模態對話框與非模態對話框的區別

 

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

相關文章
相關標籤/搜索