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
);