mfc入门基础(七)向导对话框的创建与显示

2023-11-07

实现参考:VS2010/MFC编程入门之十四(对话框:向导对话框的创建及显示)-软件开发-鸡啄米

一、向导对话框的创建与显示

1、具体的例子使用,还是参照上节或者说上上节中的例子写出来,test02,所以也还是在这个基础上来进行更改

2、创建属性页对话框,找到资源视图,然后进行右键点击,找到插入Dialog,实现如下:

 3、找到对话框模板,右击属性,进行Caption、Style、Border值的更改,具体更改为如下:

 4、删除确定和取消按钮,同时添加个静态文本框,实现效果如下:

 5、接着上述的步骤,继续添加第二个和第三个对话框资源,下面是插入第二个对话框资源,如下:(修改对话框ID,插入个静态文本,删除确定和取消按钮)

  6、继续插入第三个对话框,实现如下:

7、为第一个对话框模板添加类名,找到第一个对话框模板,ID为 IDD_SUMMAND_PAGE

右击对话框模板,选择插入类,然后就是更改类名与基类名称,如下:

8、为第一个对话框添加一个下一步按钮 ,首先需要重载个载OnSetActive函数,找到类视图->

CSummandPage节点,选择右键点击,选择属性,点击重写,找到OnSetActive,进行“<Add>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、完成,最后看下效果:

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

mfc入门基础(七)向导对话框的创建与显示 的相关文章

  • 删除文件的最后 10 个字符

    我想删除文件的最后 10 个字符 说一个字符串 hello i am a c learner 是文件内的数据 我只是希望该文件是 hello i am a 文件的最后 10 个字符 即字符串 c learner 应在文件内消除 解决方案 将
  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • C++11 删除重写方法

    Preface 这是一个关于最佳实践的问题 涉及 C 11 中引入的删除运算符的新含义 当应用于覆盖继承父类的虚拟方法的子类时 背景 根据标准 引用的第一个用例是明确禁止调用某些类型的函数 否则转换将是隐式的 例如最新版本第 8 4 3 节
  • 如何从 Visual Studio 将视图导航到其控制器?

    问题是解决方案资源管理器上有 29 个项目 而且项目同时具有 ASP NET MVC 和 ASP NET Web 表单结构 在MVC部分中 Controller文件夹中有大约100个子文件夹 每个文件夹至少有3 4个控制器 视图完全位于不同
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 传递给函数时多维数组的指针类型是什么? [复制]

    这个问题在这里已经有答案了 我在大学课堂上学习了 C 语言和指针 除了多维数组和指针之间的相似性之外 我认为我已经很好地掌握了这个概念 我认为由于所有数组 甚至多维 都存储在连续内存中 因此您可以安全地将其转换为int 假设给定的数组是in
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 如何在 C++ 中标记字符串?

    Java有一个方便的分割方法 String str The quick brown fox String results str split 在 C 中是否有一种简单的方法可以做到这一点 The 增强分词器 http www boost o
  • WPF 数据绑定到复合类模式?

    我是第一次尝试 WPF 并且正在努力解决如何将控件绑定到使用其他对象的组合构建的类 例如 如果我有一个由两个单独的类组成的类 Comp 为了清楚起见 请注意省略的各种元素 class One int first int second cla
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • 结构体的内存大小不同?

    为什么第一种情况不是12 测试环境 最新版本的 gcc 和 clang 64 位 Linux struct desc int parts int nr sizeof desc Output 16 struct desc int parts
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • LINQ:使用 INNER JOIN、Group 和 SUM

    我正在尝试使用 LINQ 执行以下 SQL 最接近的是执行交叉联接和总和计算 我知道必须有更好的方法来编写它 所以我向堆栈团队寻求帮助 SELECT T1 Column1 T1 Column2 SUM T3 Column1 AS Amoun
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐

  • 西安现场打铁记

    打铁游记 Day1 去寺庙烧了烧香拜了拜佛 去了去毒 然后在热身赛快速猜对 直接过了A B题暴力模拟一下100多行代码也是过了 最后80多名 感觉不错 美滋滋 Day2 运气都用在的昨天的热身赛 今天2发才过了B 对于F题没敢去猜 3个小时
  • lightGBM介绍,以及xgboost与lightGBM的区别

    一 lightGBM 1 简介 lightGBM全称为light Gradient Boosting Machine 2017年经微软推出 是XGBoost的升级版 在大规模数据集上运行效率更高 GBDT在每一次迭代的时候 都需要遍历整个训
  • 解决虚拟机Linux获取不到ip或者登陆地址tty1获取不到ip方法

    查询不到ip虚拟机127 0 0 0 使用root登陆 us root 1 如果ifconfig命令无法使用或者查不到也可以 然后使用 dhclient v命令 1 然后ip addr 就可以了
  • 新创建多模块工程执行maven编译打包出现non-resolvable parent pom异常

    新创建多模块工程 在执行mvn clean install时抛出non resolvable parent pom 找不到父pom异常 FATAL Non resolvable parent POM for com alibaba unkn
  • 中文核心期刊与科技核心期刊区别?

    投稿前一定要先搞清楚各大期刊的区别 在我们发表论文之前 一定要先搞清楚各大期刊的区别进行精准投递 由于各期刊的等级分类不同 评选组织不同 评选范围和评选的领域不同 在选择的时候 一定要搞清楚各期刊的类别划分 不仅可以帮助我们精准定位自己的学
  • C++11智能指针之unique_ptr

    1 智能指针概念 智能指针是基于RAII机制实现的类 模板 具有指针的行为 重载了operator 与operator gt 操作符 可以 智能 地销毁其所指对象 C 11中有unique ptr shared ptr与weak ptr等智
  • 闲鱼项目玩法实战,月入破万实战指南!

    一些闲鱼的实操技巧玩法 做短期项目都同学一定收藏下 1 相同属性的商品上架1 2个即可不宜过多 每天上新1 2为宜 过多都会限流 2 商品名称根据用户可能会输入的关键词去拆分下逐个输入搜索框 如果有搜不到的 就是谐词汇 不断尝试更换 直到都
  • ESP32 S3-OLED显示小数函数

    ESP32 S3 ardino平台 配中景园7针0 96OLED屏显示小数 OLED网上的驱动代码一般厂商发货会提供驱动程序 但是显示小数很多都没有编写 这里编写了一段可显示任意位小数的代码 以正点原子代码为基础 需要显示有符号的小数程序稍
  • 云原生全栈体系(二)

    Kubernetes实战入门 第一章 Kubernetes基础概念 一 是什么 我们急需一个大规模容器编排系统 kubernetes具有以下特性 服务发现和负载均衡 Kubernetes 可以使用 DNS 名称或自己的 IP 地址公开容器
  • 《自己动手设计数据库》第7章 设计表结构

    第7章 建立表结构 到此章为止 你手上应该有3张列表了 主题列表 经过评审的特征列表 又名初始字段列表 计算字段列表 定义初始表列表 要执行这一段内容 还需要第5章定义的任务目标 确定隐含主题 首先不去看主题列表 这里先去看初始字段列表 原
  • 执行程序时提示cuBLAS Error: cublasGemmStridedBatchedEx failed.

    操作步骤 问题现象 在使用Mindspore GPU跑程序的时候出现报错 CRITICAL KERNEL 1084 7f5e5ffff700 python3 2022 06 22 19 46 23 385 199 mindspore ccs
  • linux查看文件夹大小

    linux怎么查看文件夹多大 1 最简单的查看方法可以使用ls ll ls lh命令进行查看 当使用ls ll 会显示成字节大小 而ls lh会以KB MB等为单位进行显示 这样比较直观一些 2 通过命令du h max depth 1 可
  • Lesson 6.4 逻辑回归手动调参实验

    文章目录 一 数据准备与评估器构造 1 数据准备 2 构建机器学习流 二 评估器训练与过拟合实验 三 评估器的手动调参 在补充了一系列关于正则化的基础理论以及 sklearn 中逻辑回归评估器的参数解释之后 接下来 我们尝试借助 sklea
  • 知网CAJ直接PDF下载,并且autoBookMark添加书目

    知网能下PDF 谷歌浏览器下 You猴 安装这两个插件 CNKI 中国知网 PDF 全文下载 特制版 知网下载助手 安装所需要的文件链接 链接 https pan baidu com s 1sIKJnvuZE2P8r4HSETrWGQ 提取
  • Android TextEdit 文本框设置

    文本框类型设置 android inputType none 输入普通字符 android inputType text 输入普通字符 android inputType textCapCharacters 输入普通字符 android i
  • 从零开始学习React——(十六):利用React生命周期优化组件

    通过上一节 对于React生命周期有了新认识 如何利用它来提高组件的性能呢 本节将会抛砖引玉讲解一个小例子 为了代码的清晰 可以删除上一节一些无关的生命周期函数代码 1 ChildItem js存在性能问题 那就是 子组件ChildItem
  • GPU指令下发方式

    1 概述 GPU接收CPU发送的渲染命令 执行相应的计算 渲染命令在CPU和GPU之间传递 由CPU发送给GPU AMD的GPU有两种命令发送方式 第一种是CPU通过直接写GPU的寄存器 发送相应的渲染命令 对于GPU来说 这种方式是CPU
  • Vue中table实现行的上移和下移

    链接 html
  • 【基础知识学习】链表的创建

    链表的创建 因为对链表使用不太熟悉 学习使用数组创建了一个链表并访问 代码如下 以后学到新的知识继续补充 include
  • mfc入门基础(七)向导对话框的创建与显示

    实现参考 VS2010 MFC编程入门之十四 对话框 向导对话框的创建及显示 软件开发 鸡啄米 一 向导对话框的创建与显示 1 具体的例子使用 还是参照上节或者说上上节中的例子写出来 test02 所以也还是在这个基础上来进行更改 2 创建