




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于MFC对话框的多功能程序设计摘要利用MFC类库提供的大量预先编写好的类及支持代码,在预先建立好的框架上,通过建立类向导逐个链接新的对话框,分别用来实现计算、文本编辑、绘图、信息管理及多媒体等功能。关键词MFC、计算、文本编辑、绘图、信息管理、多媒体1. C+应用程序功能(1) 计算程序功能 计算器:点击数字及字符按钮实现整数及小数的加减乘除和求根运算。编辑框显示输入的数字及运算结果,“AC”按钮清除计算结果和历史记录。 求阶乘:滑动滑块或者点击滚动条两端的按钮求得1至15的阶乘 求一元二次方程的根:输入a,b,c三个系数,点击计算,显示两个根(包括虚根)。 点击一下:点击客户区内的区域,客户区的左上方显示该点的X,Y坐标。 素数,水仙花数的判定及求最大公约数和最小公倍数:输入任意数字,单击判定按钮在只读编辑框中判定是否为素数或水仙花数。单击求解按钮,显示其最大公约数和最小公倍数。 温度转换:输入华氏温度和摄氏温度,单击对应的按钮可以进行华氏温度和摄氏温度的相互转换并在相应的编辑框内显示转换结果。(2) 文本编辑功能 复制粘贴:“copy”按钮用于将输入的字符复制粘贴至编辑框中,“end” 按钮用于退出程序。 字符串转换:输入任意字符,程序将其小写字母转换为大写字母,其他非字母字符转换为“*”并能同步在只读编辑框中显示转换结果。 文字居中及改变字体:将文字初始化为“同舟共济 自强不息”,不论如何改变窗口大小,文字始终位于窗口中央。单击客户区弹出一个对话框,用于改变字体、字形、大小、颜色等。单击确定后,显示效果。(3) 绘图功能 基本图形与填充图形:通过选择菜单依次显示红、绿、蓝三种颜色的直线,矩形和圆。利用画笔画刷工具分别显示粗细不同的红色直线及填充了绿色方格的圆。 Sin曲线:中心有2个垂直的坐标轴,显示Sin曲线图。 左右开弓与吹泡泡:左击画任意直线,右击画固定半径的圆。吹泡泡可选择颜色显示任意半径的圆。(4) 信息管理功能 改变数据列表:对数据进行添加,删除,修改等操作。修改时,先选中需要修改的数据,在编辑框中修改,点击“修改确认”即可完成修改。 品牌及数量:选择品牌并输入数量,点击确定弹出信息录入的对话框。 录入职称,爱好,个人信息及录入成绩:对编辑框,单选,复选,组合框,滚动条等控件进行操作,点击确定弹出信息录入后的对话框。输入成绩,点击“OK”显示浮点类型的平均成绩和总分。(5) 多媒体功能 动起来及听听看看:分别对多种格式的音频文件和Flash文件进行播放,暂停,终止,前进,后退,快进,后退,跳转至任意帧等操作。 蝴蝶飞舞:基于定时器的Flash动画,单击客户区,蝴蝶动起来。(6) 其他 显示时间和日期:点击复选框,可选择性地显示当前的时间和日期。 试试手气:单击客户区,在弹出的对话框中选择目录打开任意图片。2. C+应用程序设计思想及设计过程(1) 设计思想:基于所学的知识,为了实现计算,文本编辑,绘图,信息管理及多媒体多种功能,我选择建立一个单文档类型的应用程序,通过添加对话框为不同的功能设计界面并建立新类,最后利用菜单将整合所有功能,构成了程序设计的核心。为了增加程序的互动性,通过老师的指导加之阅读相关资料,我设计了利用对话框一个欢迎界面和一个登陆界面,并让其在单文档界面之前显示。程序的主体部分完工之后,我想为单文档界面单调的客户区增添一点美感,借鉴之前绘图和插入位图的经验,我为客户区设计了带有自己名字的漂亮背景。(2) 设计过程: 新建一个单文档类型项目工程l 选择“文件|新建”命令;l 在“工程”选项卡中,选定“MFC AppWizard(exe)”,输入工程名;选定“S 单文档”,选择“完成”。l 打开ResourceView选项卡中的Menu资源;l 删除菜单中原有的菜单项;在空白菜单处右击修改属性并修改ID名。 新建对话框l 打开ResourceView选项卡中的Dialog资源,右击选择Dialog,新建对话框并修改其ID名。l 在对话框界面中添加控件,多媒体控件添加时右击对话框插入ActiveX控件选择Shockwave Flash Object添加Flash控件,选择Windows Media Player添加音频控件。l 选择“查看|建立类向导”命令,建立新类;选择Member Variables连接变量并设置类型和名称;选择Member Maps添加消息函数等。l 根据功能编写代码;在类的定义中添加适当类型的成员变量或函数;引用数学公式时注意在头文件中添加 #include “math.h”。 利用菜单将对话框与单文档链接l 打开ResourceView选项卡中的Menu资源;l 在菜单处右击建立类向导,确认Class name为CMainFrame ,找到对应的ID名,在Messages的列表框中双击COMMAND,单击Edit Code;l 在对应的函数中添加“类名 对象名;对象名.DoModal();”,在头文件中添加#include “类名.h”。 创建一个欢迎界面l 用PS处理图片,保存成BMP格式;打开ResourceView选项卡,右击选择Bitmap引入位图;l 新建对话框,插入图形控件,右击修改属性为位图,选择位图的ID名。l 通过建立类向导添加私有成员及初始化函数并编写代码;l 在工程App类的InitInstance()中添加“类名 对象名;对象名.DoModal();”的代码。 创建一个登陆界面l 过程类似于欢迎界面的创建,导入位图资源,新建对话框(密码的编辑框属性选择密码);l 在工程App类的InitInstance()中欢迎界面代码的后面添加用于设置用户名和密码的代码。 为客户区添加背景图片l 用PS处理图片,保存成BMP格式,导入位图资源;l 通过建立类向导在工程View类中添加WM_EraseBkgnd消息函数,编写代码。l 使用LoadBitmap()加载位图,用GetClientRect()获取客户区区域;l 最后编写pDC-StretchBlt(0, 0, rect.Width(), rect.Height(), &dcCompatible, 0, 0, bmp.bmWidth, bmp.bmHeight, SRCCOPY)完成背景图片的添加。3. 总结不同于上学期进行的计算机实践,这次实践中涉及的与MFC有关的知识全都需要我们自己自学并加以运用,而且老师不再全程演示操作,只会对难点进行相应指导。这使得我刚开始操作时只知道搬运代码却不知其所以然,但通过循序渐进的学习,逐步学习对话框,菜单,单文档的设计,尝试用不同控件进行计算,文本编辑,绘图,信息管理及多媒体播放程序设计,慢慢地能够梳理利用MFC类库进行C+程序设计的框架及流程了。在2周的实践中,我收获了不少,也发现了自己在学习过程中的不足,具体如下:(1) 对C+程序设计有了一个整体的认识:经过一个学期的C+基础知识的学习,从了解词法,语法,逻辑规则,掌握各种数据类型至对面向对象的程序设计的学习,我从编写零散的自定义函数代码到用类实现多个函数代码的封装到实践期间学会用不同的类实现多功能应用程序设计,慢慢地了解了程序设计发展的过程。 但认识还很模糊,很多细节理解不够透彻,从而在综合设计时会在某一个功能的编码时遇到麻烦或者碰到未曾见过的错误不知如何解决;对综合程序的设计不熟悉,整合的时候容易忘记头文件的声明。(2) 对类的功能有了更深的了解:在利用类完成各项功
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年浙江档案职称考试(档案事业概论)(初级)考前模拟试题及答案
- 2025年水务相关专业试题及答案
- 高校实验室安全《实验室防火防爆紧急处理》知识学习考试题与答案
- (新版)烹饪基础知识考试题库(含答案)
- 2025年邹婕与配偶离婚财产分割及权益保护执行标准协议
- 高效知识产权信息检索系统年度采购合同范本
- 2025年度道路绿化工程专用铲车租赁及配套服务全面合同
- 2025年帐篷材质环保检测与认证服务合同
- 2025年二手房交易抵押贷款合同模板
- 2025年家电OEM全产业链整合服务及品牌授权合同
- 2024LNG储罐焊缝X射线数字成像检测规范
- DB5117T 22-2020 地理标志产品 米城大米
- 设计概论讲课课件(第三版杨晓琪)
- 小学数学分数四则混合运算200题带答案
- 小学音乐跨学科教学的常见问题与应对策略
- 小红书食用农产品承诺书示例
- 《新能源汽车》课件 课题四 纯电动汽车
- 二年级数学计算题专项练习1000题汇编集锦
- 农村兄弟二人分家协议书范文
- 改造雨水篦子施工方案
- 《颅内压增高的临床表现》教学课件
评论
0/150
提交评论