- 26
- 0
- 约 12页
- 2015-08-07 发布于安徽
- 举报
第二部分 基于MFC的
对话框程序设计
概述
MFC简介
MFC是一个类库,类库是一个可以在应用程序中使用的相互关联的C++类的集合。 MFC作为一个Windows编程类库,它包含了200多个类,封装了Windows的大部分编程对象以及与它们有关的操作。
MFC主要组成部分包括类、宏和全局函数。
类是MFC中最主要的内容。MFC类是以层次结构方式组织起来的。MFC中的类分成两部分,除了一些辅助类,大多数的MFC类是直接或间接从根类CObject派生而来。几乎每一个派生层次都与一具体的Windows实例相对应,如文档类、窗口类和视图类等。下图是一个多文档MFC程序中各种对象的逻辑关系:
MFC宏主要功能包括消息映射、运行时对象类型服务、诊断服务、异常处理等。 例如,MFC采用消息映射(Message Map)机制取代C/C++语言中的switch-case结构来处理消息。MFC消息映射机制包括一组消息映射宏。一条消息映射宏把一个Windows消息和其消息处理函数联结起来。在类的实现源文件中用BEGIN_MESSAGE_MAP()和END_MESSAGE_MAP()宏来定义消息映射。在类定义的结尾用DECLARE_MESSAGE_MAP()宏来声明使用消息映射。 一个基本消息映射结构如下所示:
BEGIN_MESSAGE_MAP(theclass, baseclass)
//{{AFX_MSG_MAP(theclass)
ON_ . . . . . . // MFC预定义的消息映射宏
ON_MESSAGE(message , memberFxn)
// 用户自定义的消息映射宏
. . . . . .
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
MFC约定:全局函数以“Afx”为前缀,全局变量以“afx”为前缀。例如,通过调用:AfxMessageBox(Some Message);可直接在屏幕上弹出消息对话框。
实践内容
用MFC开发一个计算器程序:
对话框类型的程序;
能够实现浮点数值的加减乘除运算;
界面由一个编辑框和若干按钮组成,编辑框负责表达按钮输入及计算的结果,按钮负责输入数字、加减乘除以及等于等动作的输入;
程序的核心功能由标准C++方式实现,并通过MFC框架代码调用其功能;
程序中的变量及函数要规范命名,并加以适当的注释。
实践环境要求
开发环境统一使用Microsoft Visual Studio 2005。
创建基本工程步骤
打开Microsoft Visual Studio 2005开发环境;
选择“新建”项目
弹出新建项目对话框,在项目类型中依次选择:Visual C++ -MFC,在右面的模板中选:MFC应用程序,在下面的名称中,键入项目名称,这里是:Task2,然后在位置一栏中选择项目保存的路径。
在确定新建对话框中的内容设置好后,选择确定按钮,弹出向导,在向导的应用程序类型页面中,按下图进行配置:
单击“完成”按钮,创建项目,解决方案中包括下述文件:
单击菜单中的“项目-属性”,弹出属性页对话框,在对话框中的左侧列表中选择“配置属性-常规”,在右侧的“项目默认值-字符集”中选择“使用多字节字符集”,按确认更改项目属性。(如果严格按上述向导配置工程,此处应该已经是“使用多字节字符集”状态)
单击“启动调试”按钮,在弹出的对话框中选择“是”,运行程序,运行结果如下:
至此,基本框架代码已经由环境建立,下一步可以编写自己的代码到框架中并实现预期的功能。
开发新功能
相对于任务一,本次任务要复杂一些,但很多工作步骤都是类似的,例如,如何在计算器文本框内显示文字,与任务一完全相同,这里就不再重复了。计算器中有许多功能按钮,这里仅例举一个添加按钮的例子,并进行消息映射的处理。
新建对话框按钮和编辑框
在资源视图中打开Dialog文件夹,双击IDD_TASK2_DIALOG项目,打开对话框编辑窗口:
单击“TODO: 在此放置对话框控件。”,删除这个控件。从控件工具栏中选择“Button”,将它拖动到对话框中,对话框中出现“Button1”按钮,修改其ID和Caption为适当的名字,这里修改为“IDC_TEST”和“TEST”
在TEST按钮上单击右键,在弹出菜单中选择“添加事件处理程序”,在弹出的对话框中按如下配置进行选择,这里也可自定义处理函数名字,默认为“OnBnClickedTest”:
按“添加编辑”按钮,自动定位到处理函数,可在此处编辑消息映射代码。
在对话框编辑器中打开对话框,在其中新建一个编辑框(Edit Control),并将编辑框的ID调整为IDC_MESSAGE:
编辑TEST按钮消息映射函数,这里代码的功能是:点
您可能关注的文档
- 设备安装质量员专业知识题库 ().doc
- 设计年产5520万吨转炉炼钢车间,产品板材.doc
- 设计调度中心方案_Microsoft_Word_文档.doc
- 社会发展规律1课件(新人教必修4).ppt
- 社会发展规律导学案.doc
- 社会实践报告复审工作手册.doc
- 社会实践之调查柘荣县中医药文化.doc
- 社会调查报告-科学发展在身边-关于蚌埠发展调查.doc
- 社会调查研究方法8观察文献法.ppt
- 社会调查研究方法复习.doc
- 人教版九年级英语Unit 4曾害怕课件3a-4c.pdf
- 雅思口语考题回顾:朗阁海外考试研究中心2019年10月10日Part 1考题总结.pdf
- 2026届高三地理一轮复习课件小专题河流袭夺.pptx
- 【名师原创】复习专题5 三角函数 作者:合肥市第八中学 蒲荣飞名师工作室.docx
- 高中数学一轮复习 微专题2 抽象函数.docx
- 高中数学——复习专题4 空间向量与立体几何.docx
- 高中数学一轮复习 微专题3 空间几何体中的截面、轨迹问题.docx
- 高中数学一轮复习 微专题4 空间几何体的最值、范围问题.docx
- 导流洞施工质量通病防治手册.docx
- 江苏省徐州市第一中学、徐市第三中学等五校2026届高三上学期12月月考历史试题含答案.docx
原创力文档

文档评论(0)