No.4简单的MFC多对话框演示程序“MultiDialog”演示如何在工程中拥有多个对话框,及如何在一个对话框中调用另一个对话框。
重点:1、多个对话框类的建立;
2、对话框的模式(Modal)调用方法;
3、Spin控件的使用。
新建一个基于对话框的MFC工程,通过菜单"Insert>>Resource"打开添加资源对话框,在其中选择Dialog后点击New创建一个新的对话框按Ctrl+W打开ClassWizard,系统会提示刚才创建了一个新的对话框资源,是否建立对应的类,选择建立,然后在NewClass窗口中ClassName栏输入它的名称:CSubClass1,确定后系统会自动生成SubClass1.h和SubClass1.cpp并加入工程中,其中有已经创建好的CSubClass1的类的基本代码。
把这个对话框的Caption属性改为“难度选择”,在它上面画三个Radio“简单”、“标准”、“困难”,并建立相关联的变量m_Option1。
(要注意的是在ClassWizard中注意ClassName中应该选CSubClass1而不是之前的主对话框类)按照相同方法建立第二个新对话框,类名“CSubClass2”,Caption为“关卡选择”。
在上面画一个Edit和一个Spin,注意先画Edit后画Spin,将Spin的Autobuddy和Setbuddyinteger勾上。
按Ctrl+W打开ClassWizard,为Edit建立关联变量,不过注意是int型而不是CString型,也为Spin建立关联变量m_Spin1,注意这次是Control型变量CSpinButtonCtrl。
下面为这两个对话框添加代码。
双击“难度选择”对话框的OK按钮,建立对话框的OnOK映射。
在其中加入(在CDialog::OnOK();之前):UpdateData(TRUE);if((m_Option1>2)||(m_Option1<0)){MessageBox("错误的选择!","提示",MB_OK);return;}下面对“关卡选择”对话框添加初始化代码,由于关卡的有效值只有1到6,因此需要在初始化时设置Spin控件的有效值范围。
按Ctrl+W打开ClassWizard,在左侧列表选择这个对话框类CSubDialog2,在右侧列表中选择WM_INITDIALOG,点击右边的“AddFunction...”按钮,接着点击右边的“EditCode”按钮,在其中中加入(在CDialog::OnInitDialog()那句之后,在returnTRUE那句之前):m_Spin1.SetRange(1,6);m_Text1=1;m_Spin1.SetPos(1);其中CSpinButtonCtrl::SetRange()函数的作用是设置和他关联的Spin控件的范围,两个参数分别是下界和上界。
而CSpinButtonCtrl::SetPos()是设定Spin的当前位置。
两个新的对话框都已建立完毕,下来是如何在主对话框中使用的问题。
首先,两个新对话框都有各自的类,分别在SubDialog1.h和SubDialog2.h中有定义。
(类的细节则在对应的cpp中定义)因此,主对话框想要调用这两个新对话框,需要先包含这两个头文件,在你要使用的地方(本例是MultiDialogDlg.cpp中)文件前面加上#include"SubDialog1.h"#include"SubDialog2.h"然后在想要调用的地方就可以使用了。
本例中,首先为主窗口的两个Edit建立CString型关联变量m_Text1和m_Text2,然后在两个按钮的消息映射函数中分别加入:CSubDialog1dialog1;//定义CSubDialog1型对话框的一个新对象dialog1.DoModal();//使用“模式”调用,显示对话框m_Text1.Format("%d",dialog1.m_Option1);//此句在上面对话框没有关闭前不会执行到UpdateData(FALSE);和CSubDialog2dialog1;dialog1.DoModal();m_Text2.Format("%d",dialog1.m_Text1);UpdateData(FALSE);其中第一句均为定义对话框新实例的语句,定义一个你想要的类型的对话框。
第二句是通过调用CDialog::DoModal()方法,来显示这个对话框,并进入“模式”(Modal)状态在“模式”状态,当子对话框没有关闭之前,调用它的父对话框不能被响应,并且其语句执行会停留在刚才的DoModal语句上等待,直到子对话框关闭才接着执行下一个语句。
第三第四句将子对话框得到的数据(即类的成员变量)显示在父对话框的Edit上。
四句执行完后退出该函数,这时刚才定义的CSubDialog1等对话框类变量被销毁,因此创建的话框也被销毁。
2024/10/14 12:21:15 3.52MB MFC VC 多窗口 multiwidows
1
2019年11月9日软件设计师下午题答案,第一题:二手车物流系统;
第二题:新员工入职技能培训管理系统;
第三题:牙科诊所信息系统;
第四题:0-1背包问题;
第五题:文件管理系统
2024/10/14 8:41:57 1.18MB 软件设计师 答案
1
学习过程中做的,高手勿喷!
2024/10/14 4:19:42 1.85MB openGL3D
1
小米推出的米兔积木机器人是一款可以自由DIY的积木机器人,它通过让玩家自主的进行造型设计、结构设计,电子模块搭建以及程序设计等几个步骤让玩家搭建起自己的机器人。
按照小米一贯的产品思路,这款米兔积木机器人可以称为年轻人的第一台自己建造的机器人。
小米官方给出的文档是叫做平衡战士的978个积木零件,第一次接触这个领域的人有可能会拼装四到五个小时,而大部分玩家在拼好机器人后除了遥控玩几次就当成了摆件,并没有去接触模块化的编程。
有人说仅仅享受了不到50%的乐趣,而真正机器人的乐趣在编程的阶段。
为了引导广大玩家能编程控制自己的机器人,我们推出了这个文档。
力求使用很少的积木零件让大家能快速上手,掌握机器人的编程。
2024/10/13 22:51:17 22.22MB 小米机器人 米兔 编程指南
1
第一阶段:这一阶段会学习MapReduce、Hive、HDFS、Yarn、Spark等计算框架的开发技术,以及Scala编程语言。
通过项目实践,你能快速掌握这些技术,获得数据开发、数据挖掘、机器学习等职位必备的基本开发能力。
第二阶段:这一阶段会学习FLume、Kafka、SparkStreaming、Flink/Storm、Zookeeper、HBase等计算框架的开发技术,以及大数据体系内的数据采集和数据仓库理论思想和技术实现。
通过项目实践,你能快速掌握这些技术,获得完整的大数据架构开发能力。
第三阶段:这一阶段会学习NLP文本相似度、中文分词、HMM算法、推荐算法CF、回归算法等应用与开发技术,整体认识商业项目-音乐推荐系统。
使用海量真实数据对大数据平台和算法进行应用实践,快速掌握大数据行业具有巨大价值的核心技术。
第四阶段:这一阶段会学习分类算法、聚类算法、分类算法-决策树、分类算法-SVM、神经网络+深度学习,深化前3阶段技术能力,初入机器学习领域。
通过对机器学习核心算法的强化练习,你将能完美胜任目前人才最紧缺的数据挖掘开发职位。
2024/10/13 15:34:27 128B 大数据 机器学习 数据挖掘
1
文化产业概论教学课件第一章导论
2024/10/13 10:45:49 3.03MB 第一章导论
1
此资源为车牌识别系统的功能评测子库的第一部分,车牌种类变化子库,本来想一起上传的,但是文件大小超出了上传限制。
2024/10/13 4:24:15 190.81MB plate recogn
1
解压AppScan7.8破解.rar你会看到:patch.exekeygen.exe如果没有看到keygen.exe那肯定被你的杀毒软件给干了.解压之前一定要关掉所有杀毒的.第一步:打开patch.exe--_-patch--_-Cannotfindthefile.Searchthefile?--_-是--_-(AppScan安装目录下)选中engine_control.dll--_-OK第二步:打开keygen.exe--_-在第一个框TeamEDGE输入随便输入如:keygen--_-Generate--_-当前目录生成license.lic从没成功安装的经验中总结出来的.觉得好给个星星或评价,分自动退回,这也是诀窍哦!
2024/10/11 7:21:36 113KB appscan 破解
1
[图书简介] 本书是一本c#编程方面的优秀教材,全面介绍了c#编程的原理和方法,涉及类与对象、控制语句、方法、数组、继承、多态、异常处理、gui、多线程、多媒体、xml、数据库与sql、asp.net、web服务、网络、查找与排序、数据结构、泛型、集合等基本概念及应用方法。
本书介绍最新c#版本visualc#2008的关键新特性,包括linq特性、使用linqtosql的数据库、wpfgui和图形、wcfweb服务、asp.net3.5与asp.netajax、silverlight2技术、支持linq的新语言特性、隐式类型局部变量和自实现属性。
.  本书可作为高等院校相关专业的编程语言教材和c#编程教材,也是软件设计人员进行c#程序开发的宝贵参考资料。
...[图书目录]第1章计算机、internet与visualc#简介.1.1简介1.2什么是计算机1.3计算机组织1.4个人计算、分布式计算与客户/服务器计算1.5硬件发展趋势1.6microsoft的windows操作系统1.7机器语言、汇编语言和高级语言1.8visualbasic1.9c、c++和java1.10visualc#1.11其他高级语言1.12结构化编程1.13关键软件发展趋势:对象技术1.14internet与万维网1.15xml1.16microsoft的.net1.17.net框架与公共语言运行环境1.18尝试c#高级绘图程序1.19(必读)软件工程案例研究:对象技术与uml简介.1.20总结1.21web资源第2章visualc#2008express简介2.1简介2.2visualstudio2008ide概述2.3菜单栏与工具栏2.4visualstudioide导航2.5使用帮助2.6用可视编程生成简单程序,显示文本与图形2.7总结2.8web资源第3章c#程序简介3.1简介3.2简单c#程序:显示一行文本3.3在visualc#express中创建简单程序3.6另一个c#程序:整数相加第4章类与对象简介4.1简介4.2类、对象、方法、属性和实例变量4.3声明带方法的类和实例化类的对象4.4声明带参数的方法4.5实例化变量与属性4.6带属性的uml类框图4.7带属性和set与get访问方法的软件工程4.8自实现属性4.9值类型与引用类型4.10用构造函数初始化对象4.11浮点数与decimal类型4.12(选读)软件工程案例研究:确定atm需求文档中的类4.13总结第5章控制语句:第一部分5.1简介5.2算法5.3伪代码5.4控制结构5.5订单选择语句5.6ifelse双选择结构5.7while重复语句5.8构造算法:计数器控制重复5.9构造算法:标记控制重复5.10构造算法:嵌套控制语句5.11复合赋值运算符5.12自增和自减运算符5.13简单类型5.14(选读)软件工程案例研究:确定atm系统的类属性5.15总结第6章控制语句:第二部分6.1简介6.3for循环语句6.4for循环使用举例6.5dowhile重复语句6.6switch多选择语句6.7break与continue语句6.8逻辑运算符6.9结构化编程小结6.10(选读)软件工程案例研究:确定atm系统中对象的状态和活动6.11总结第7章方法详述7.1简介7.2c#代码包装7.3静态方法,静态变量和math类7.4声明多参数方法7.3关于方法声明与使用7.6方法调用堆栈与激活记录7.7变元提升与类型转换7.8.net框架类库7.9案例研究:随机数生成7.10案例研究:机会游戏(引入枚举)7.11声明作用域7.12方法重载7.13递归7.14按值与按引用传递变元7.15(选读)软件工程案例研究:确定atm的类操作7.16总结第8章数组8.1简介8.2数组8.3声明与创建数组8.4数组使用举例8.5案例研究:洗牌与发牌模拟8.6foreach语句8.7将数组与数组元素传人方法8.8按值与按引用传递数组8.9案例研究:gradebo
2024/10/11 0:26:29 368.19MB C#
1
学习杂记松的成长之旅2020.05.25突发奇想,想要记录一下自己在开发路上的成长过程并有了第一篇笔记MySql优化建议的原因2020.05.26更新一下使用自定义注释解和AOP切面实现增强功能尝试一天一更吧2020.07.10更新了IOC容器相关知识2020.09.02更新了Redis相关知识
2024/10/10 15:50:25 2.52MB
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡