Windows应用程序有两种对话框:模态对话框(Modal Dialog)和非模态对话框(Modeless Dialog)。构造两种对话框的大多数工作都相同,只是两者的显示和数据处理方法有些不同。

    模态对话框工作时,会导致其父窗口无效,直到对话框工作结束。

    非模态对话框再打开期间,允许用户切换到应用程序的其他部分,不一定要关闭对话框。


创建和显示模态对话框:


CxxxDlg dlg; // 实例化对话框类
dlg.DoModal();  // 创建和显示模态对话框




创建和显示非模态对话框:


CxxxDlg *pDlg = new CxxxDlg();  // 动态构造对话框对象
pDlg->Create(IDD_XXX_DLG, this);  // 创建非模态对话框
pDlg->ShowWindow(SW_SHOW);  // 显示非模态对话框



Create()成员函数的原型如下:


virtual BOOL Create(
    UINT nIDTemplate,
    CWnd* pParentWnd = NULL
);