MFC新手一枚,还是先从创建对话框开始吧。

Modal Dialogue Box)和非模态对话框(Modeless)。

Modal Dialogue Box)是指用户要对该对话框以外的应用程序进行操作的话,必须首先对该对话框进行响应,点击【确定】或【取消】来关闭该对话框。例如,你要删除某个文件时,Windows弹出的“确认删除文件夹”对话框,它就是个模态对话框。

非模态(Modeless)对话框,当用户打开非模态对话框时,依然可以操作其他窗口。例如,Windows提供的记事本程序中的【查找】对话框。【查找】对话框不会垄断用户的输入,打开【查找】对话框后,仍可与其他用户界面对象进行交互。用户可以一边查找,一边修改文章,这样就大大方便了使用。

一.创建模态对话框

在已经创建好的一个MFC基于对话框项目DlgTest中,将资源视图中的资源展开,在Dialog文件夹上右键-->插入Dialog,此时就会生成一个新的对话框,修改对话框的ID为“IDD_DLG_TEST”(ID根据自己需求取名)

接着右键新建的对话框-->添加类,类名填写“CMyDialog”,基类选择“CDialog”,点击“完成”即可生成一个与该对话框相关的CMyDialog类。

打开类视图,右键CDlgTest-->添加变量,变量类型“CMyDialog * ”,变量名“m_pMyDlg”,点击“完成”,即为CDlgTest类添加一个变量。

 

给“IDD_DLGTEST_DIALOG”对话框添加一个按钮控件,按钮的Caption填写为“生成对话框”,双击该按钮,转到该button的消息响应函数里,添加如下代码:

 

1 m_pDlgTest = new CMyDialog;
2 m_pDlgTest->DoModal();

2.创建非模态对话框

步骤和创建模态对话框相同,只是在往button的消息处理函数添加代码时不一样,添加如下代码:

1 m_pDlgTest = new CMyDialog;
2 m_pDlgTest->Create(IDD_DLG_TEST, this);
3 m_pDlgTest->ShowWindow(SW_SHOW);

运行即能看到效果,赶紧试试吧~