实现参考:VS2010/MFC编程入门之十四(对话框:向导对话框的创建及显示)-软件开发-鸡啄米
一、向导对话框的创建与显示
1、具体的例子使用,还是参照上节或者说上上节中的例子写出来,test02,所以也还是在这个基础上来进行更改
2、创建属性页对话框,找到资源视图,然后进行右键点击,找到插入Dialog,实现如下:
3、找到对话框模板,右击属性,进行Caption、Style、Border值的更改,具体更改为如下:
4、删除确定和取消按钮,同时添加个静态文本框,实现效果如下:
5、接着上述的步骤,继续添加第二个和第三个对话框资源,下面是插入第二个对话框资源,如下:(修改对话框ID,插入个静态文本,删除确定和取消按钮)
6、继续插入第三个对话框,实现如下:
7、为第一个对话框模板添加类名,找到第一个对话框模板,ID为 IDD_SUMMAND_PAGE
右击对话框模板,选择插入类,然后就是更改类名与基类名称,如下:
8、为第一个对话框添加一个下一步按钮 ,首先需要重载个载OnSetActive函数,找到类视图->
CSummandPage节点,选择右键点击,选择属性,点击重写,找到OnSetActive,进行“
- BOOL CSummandPage::OnSetActive()
- {
- // TODO: 在此添加专用代码和/或调用基类
- // 获得父窗口,即属性表CPropertySheet类
- CPropertySheet* psheet = (CPropertySheet*) GetParent();
- // 设置属性表只有“下一步”按钮
- psheet->SetWizardButtons(PSWIZB_NEXT);
- return CPropertyPage::OnSetActive();
- }
9、为第二个对话框插入类,如下:
10、找到第三个对话框,实现效果如下:
- BOOL CAddPage::OnSetActive()
- {
- // TODO: 在此添加专用代码和/或调用基类
- // 获得父窗口,即属性表CPropertySheet类
- CPropertySheet* psheet = (CPropertySheet*) GetParent();
- //设置属性表只有“完成”按钮
- psheet->SetFinishText(_T("完成"));
- return CPropertyPage::OnSetActive();
- }
11、第三个对话框中,需要点击“完成”按钮时进行某些处理,可以重载OnWizardFinish函数,方法与上方一样,重载之后OnWizardFinish函数:
- BOOL CAddPage::OnWizardFinish()
- {
- // TODO: 在此添加专用代码和/或调用基类
- // 提示向导完成
- MessageBox(_T("使用说明向导已阅读完!"));
-
- return CPropertyPage::OnWizardFinish();
- }
12、以上关于对话框的工作完成了,下一步需要进行创建属性表类,找到test02(解决方案中的根节点),右击点击类,选择MFC类如下:
在AddSheet.h和.cpp中分别添加如下:
13、添加一个使用说明按钮,如下:
14、双击进入添加点击事件,创建属性对象,在Ctest02Dlg中加入头文件:#include "AddSheet.h"
- void Ctest02Dlg::OnBnClickedInstructButton()
- {
- // TODO: 在此添加控件通知处理程序代码
- // 创建属性表对象
- CAddSheet sheet(_T(""));
- // 设置属性对话框为向导对话框
- sheet.SetWizardMode();
- // 打开模态向导对话框
- sheet.DoModal();
- }
15、完成,最后看下效果: