MFC 向导对话框的设置与显示

2024-04-22 07:38

本文主要是介绍MFC 向导对话框的设置与显示,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.设置Dialog           (基础的设置)

2.创建属性页类,并重写相关函数

   选定一个Dialog,然后添加class,名字CStep1,由于属性页对话框类继承于CPropertyPage类,所以基类选择处选择CPropertyPage。

   创建完该类之后就是重写其中的相关函数。

   CPropertyPage类提供了一些消息处理函数,来响应属性页对话框的各种消息。我们重载这些消息处理函数,就可以自定义对属性页对话框操作的处理。可重载的消息处理函

   数包括:

       OnApply:处理属性页的“Apply”按钮被单击的消息

       OnCancel:处理属性页的“Cancel”按钮被单击的消息

       OnKillActive:处理属性页当前活动状态被切换的消息,常用于数据验证

       OnOK:处理属性页的“OK”按钮、“Apply”按钮或者“Close”按钮被单击的消息

       OnQueryCancel:处理属性页的“Cancel”按钮被单击前发出的消息

       OnReset:处理属性页的“Reset”按钮被单击的消息

       OnSetActive:处理属性页被切换为当前活动页的消息

       OnWizardBack:处理属性页的“Back”按钮被单击的消息,仅在向导对话框中有效

       OnWizardFinish:处理属性页的“Finish”按钮被单击的消息,仅在向导对话框中有效

       OnWizardNext:处理属性页的“Next”按钮被单击的消息,仅在向导对话框中有效

BOOL CStep1::OnSetActive()
{// TODO: 在此添加专用代码和/或调用基类CPropertySheet* psheet = (CPropertySheet*)GetParent()<span class="comment">// 获得父窗口,即属性表CPropertySheet类 </span><span> </span><span> </span>psheet->SetWizardButtons(PSWIZB_BACK|PSWIZB_NEXT);//添加向导按钮“上一页”和“下一页”return CPropertyPage::OnSetActive();
}
BOOL CStep3::OnWizardFinish()//当点击finish按钮时,弹出消息框
{// TODO: 在此添加专用代码和/或调用基类MessageBox(_T("计算器向导您已经阅读完毕"));//弹出消息框return CPropertyPage::OnWizardFinish();
}

3.创建属性表类

在解决方案资源管理器的root下,右击->添加->类,然后选择MFC类,然后添加名称CMySheet,其基类为CPropertySheet。

这时候会自动生成MySheet.h和MySheet.cpp。我们先打开.h文件然后在里面添加属性页对话框类的头文件,例如之前创建的Step0.h,Step1.h......,添加完之后,找到MySheet类,在里面添加私有成员,私有成员是所有的属性页类的一些变量。
#pragma once
#include "Step0.h"
#include "Step1.h"
#include "Step2.h"
#include "Step3.h"// CMySheetclass CMySheet : public CPropertySheet
{DECLARE_DYNAMIC(CMySheet)public:CMySheet(UINT nIDCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);CMySheet(LPCTSTR pszCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);virtual ~CMySheet();protected:DECLARE_MESSAGE_MAP()
private:CStep0 m_step0;CStep1 m_step1;CStep2 m_step2;CStep3 m_step3;
};
之后需要在CMySheet的构造函数中创建属性页使用到AddPage()函数
为属性对话框添加新的属性页。函数原型为:

       void AddPage(
               CPropertyPage *pPage 
       );

其两个构造函数都要修改:( 注意这里面添加属性页的顺序是向导框显示的顺序,一定要注意顺序安排
CMySheet::CMySheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage):CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
{AddPage(&m_step0);AddPage(&m_step1);AddPage(&m_step2);AddPage(&m_step3);
}CMySheet::CMySheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage):CPropertySheet(pszCaption, pParentWnd, iSelectPage)
{AddPage(&m_step0);AddPage(&m_step1);AddPage(&m_step2);AddPage(&m_step3);
}

4.最后设置“启动”Button

void CMFCApplication1Dlg::OnBnClickedButton1()
{// TODO: 在此添加控件通知处理程序代码CMySheet sheet(_T(""));//声明一个CMySheet类的变量,并且初始化。sheet.SetWizardMode();//设置属性页对话框为向导对话框模式,应该在调用DoModal之前调用此函数sheet.DoModal();//用于显示模态对话框
}



以上是简单的设置。


这篇关于MFC 向导对话框的设置与显示的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/925177

相关文章

idea设置快捷键风格方式

《idea设置快捷键风格方式》在IntelliJIDEA中设置快捷键风格,打开IDEA,进入设置页面,选择Keymap,从Keymaps下拉列表中选择或复制想要的快捷键风格,点击Apply和OK即可使... 目录idea设www.chinasem.cn置快捷键风格按照以下步骤进行总结idea设置快捷键pyth

MyBatis配置文件中最常用的设置

《MyBatis配置文件中最常用的设置》文章主要介绍了MyBatis配置的优化方法,包括引用外部的properties配置文件、配置外置以实现环境解耦、配置文件中最常用的6个核心设置以及三种常用的Ma... 目录MyBATis配置优化mybatis的配置中引用外部的propertis配置文件⚠️ 注意事项X

idea粘贴空格时显示NBSP的问题及解决方案

《idea粘贴空格时显示NBSP的问题及解决方案》在IDEA中粘贴代码时出现大量空格占位符NBSP,可以通过取消勾选AdvancedSettings中的相应选项来解决... 目录1、背景介绍2、解决办法3、处理完成总结1、背景介绍python在idehttp://www.chinasem.cna粘贴代码,出

Java JAR 启动内存参数配置指南(从基础设置到性能优化)

《JavaJAR启动内存参数配置指南(从基础设置到性能优化)》在启动Java可执行JAR文件时,合理配置JVM内存参数是保障应用稳定性和性能的关键,本文将系统讲解如何通过命令行参数、环境变量等方式... 目录一、核心内存参数详解1.1 堆内存配置1.2 元空间配置(MetASPace)1.3 线程栈配置1.

C#借助Spire.XLS for .NET实现Excel工作表自动化样式设置

《C#借助Spire.XLSfor.NET实现Excel工作表自动化样式设置》作为C#开发者,我们经常需要处理Excel文件,本文将深入探讨如何利用C#代码,借助强大的Spire.XLSfor.N... 目录为什么需要自动化工作表样式使用 Spire.XLS for .NET 实现工作表整体样式设置样式配置

Java实现为PDF设置背景色和背景图片

《Java实现为PDF设置背景色和背景图片》在日常的文档处理中,PDF格式因其稳定性和跨平台兼容性而广受欢迎,本文将深入探讨如何利用Spire.PDFforJava库,以简洁高效的方式为你的PDF文档... 目录库介绍与安装步骤Java 给 PDF 设置背景颜色Java 给 PDF 设置背景图片总结在日常的

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

C#实现SHP文件读取与地图显示的完整教程

《C#实现SHP文件读取与地图显示的完整教程》在地理信息系统(GIS)开发中,SHP文件是一种常见的矢量数据格式,本文将详细介绍如何使用C#读取SHP文件并实现地图显示功能,包括坐标转换、图形渲染、平... 目录概述功能特点核心代码解析1. 文件读取与初始化2. 坐标转换3. 图形绘制4. 地图交互功能缩放

python库pydantic数据验证和设置管理库的用途

《python库pydantic数据验证和设置管理库的用途》pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍p... 目录主要特点和用途:Field数值验证参数总结pydantic 是一个让你能够 confidentl

Java利用Spire.XLS for Java设置Excel表格边框

《Java利用Spire.XLSforJava设置Excel表格边框》在日常的业务报表和数据处理中,Excel表格的美观性和可读性至关重要,本文将深入探讨如何利用Spire.XLSforJava库... 目录Spire.XLS for Java 简介与安装Maven 依赖配置手动安装 JAR 包核心API介