MFC基本应用程序的建立实验报告
MFC基本应用程序的建立-----VC++程序实验报告
计算机与信息技术学院综合性、设计性实验报告
专业:计算机科学与技术 年级/班级: 10计科一班
一、 实验目的:
(1) 了解Windows的基本编程特点
(2) 会使用MFC AppWinzard(exe)创建单文档应用程序
(3) 学会添加消息映射等简单功能
(4) 掌握用项目工作区的ClassView页面添加数据成员的方法
(5) 学会和掌握调试的一般步骤和过程
二、 实验内容:
(1) 在一个默认的单文档应用程序Ex_SDI中通过映射计时器消息实现这样的功能:无
论在Ex_SDI应用程序窗口的客户区中单击鼠标左键或右键,都会弹出“消息”对
话框,显示左键或右键的单击次数。
(2) 使用调试器对上述程序的流程和鼠标单击次数进行调试。
三、 实验步骤:
1、 创建工作文件夹
打开计算机,在“G:\Visual C++程序\实验”文件夹中创建一个新的子文件夹“实验8”。
2、 创建单文档应用程序Ex_SDI
创建单文档应用程序Ex_SDI的具体步骤如下:
(1) 启动Visual C++
(2) 选择“文件”→“新建”菜单命令,显示“新建”对话框。从列表中选中MFC
AppWinzard(exe)的项目类型项。
(3) 在“工程”编辑框中输入应用程序项目名称Ex_SDI,并将项目文件夹定位到
“D:\Visual C++程序\实验\实验8”。
(4) 单击“确定”按钮,显示“应用程序向导”对话框。选中单个文档(Single
Document,简称SDI)应用程序类型。单击“完成”按钮,系统将显示向导创
建的信息,单击“确定”按钮将自动创建此应用程序。
(5) 编译运行。
具体操作如下:
MFC基本应用程序的建立-----VC++程序实验报告
运行结果如下:
3、 添加数据成员:
添加数据成员的的具体步骤如下:
(1) 展开项目工作区窗口ClassView中的所有类结点。
(2) 用鼠标右键单击CEx_SDIView类结点,从弹出的快捷菜单中选择“Add
Member Variable(添加成员变量)”,弹出如图所示的“Add Member Variable”
对话框。
(3) 在Variable Type框中输入成员变量类型int,在Variable Name框中输入变量名
称m_nLButton。保留默认的访问方式(Acess)为Public。单击“确定”按钮,
这样,就会在CEx_SDIView中添加一个公有型成员变量m_nLButton,变量类
型为int。
MFC基本应用程序的建立-----VC++程序实验报告
(4) 按相同的方法,在CEx_SDIView中添加一个公有型成员变量m_nRButton,变
量类为int.
(5) 在项目工作区窗口Class View中,展开CEx_SDIView的所有结点,双击构造
函数CEx_SDIView()结点,在CEx_SDIView类的构造函数中添加下列成员变
量初始化代码:
CEx_SDIView::CEx_SDIView() {
m_nLButton=m_nRButton=0;
}
4、 添加消息映射:
添加消息映射的具体步骤如下:
(1) 按“Ctrl+W”快捷键打开“MFC ClassWizard”对话框。
(2) 在Class name组合框中,将类名选定为CEx_SDIView。此时,Object IDs和
Messages列表内容会相应的改变。在Object IDs列表框中选定CEx_SDIView,
而在Messages列表框中选定WM_LBUTTOMDOWM消息。
(3) 双击Messages列表中的WM_BUTTOMDOWM消息或者单击“Add Function”按钮,
都会在CEx_SDIView类中添加该消息的映射函数OnLButtonDowm,同时在
Member functions列表中显示这一消息映射函数和被映射的消息。映射
WM_LBUTTOMDOWN消息的结果如下:
MFC基本应用程序的建立-----VC++程序实验报告
(4) 单击“Edit Code”按钮后,ClassWizard对话框退出,并转向文档窗口,定
位到OnLButtonDown函数源代码处,添加以下代码:
void CEx_SDIView::OnLButtonDown(UINT nFlags, CPoint point) {
//计数变量m_nLButton加1,然后启动计时器
m_nLButton++;
SetTimer(1,50,NULL);
CView::OnLButtonDown(nFlags, point);
}
(5) 按相同的方法为CEx_SDIView类添加WM_RBUTTOMDOWN消息映射,并在映射函
数中添加下列代码:
void CEx_SDIView::OnRButtonDown(UINT nFlags, CPoint point)
{ //计数变量m_nRButton加1,然后启动计时器
m_nRButton++;
SetTimer(2,50,NULL);
CView::OnRButtonDown(nFlags, point);
}
(6) 按类似的方法为CEx_SDIView类添加一个WM_TIMER消息映射,并在映射函数
中添加下列代码:
void CEx_SDIView::OnTimer(UINT nIDEvent)
{ CString str; //
创建一个字符串类对象
//通过判断nIDEvent的值来确定是单击鼠标左键
还是右键
if(nIDEvent==1)
MFC基本应用程序的建立-----VC++程序实验报告
str.Format("你已单击鼠标左键 %d 次!",m_nLButton); if(nIDEvent==2) str.Format("你已单击鼠标右键 %d 次!",m_nLButton); if((nIDEvent==1)||(nIDEvent==2)) { KillTimer(nIDEvent); //先要关闭计时器 MessageBox(str,"报告"); } CView::OnTimer(nIDEvent);
}
(7)编译运行并测试,结果如图:
5
、 设置断点
在设置断点之前,首先要保证程序中没有语法错误,所谓断点就是告诉调试器在何处暂时中断程序的进行,以便查看程序的状态以及浏览和修改变量的值等。
(1) 在项目工作区的ClassView页面中,展开CEx_SDIView下的所有结点。
(2) 双击OnLButtonDown结点,会在文档窗口中打开并定位到该消息映射代码处,在
代码行“m_nLButton++;”中单击鼠标。
(3) 用下列3种方式之一设置断点,会在代码行“m_nLButton++;”的最前面的窗口页
边距上有一个深红色的实心圆块,如图:
MFC基本应用程序的建立-----VC++程序实验报告
①按快捷键F9
②在Build工具栏上单击按钮
③在需要设置(或清除)断点的位置上单击鼠标右键,在弹出的快捷菜单中选择“Insert/Remove Breakpoint”命令
6、 控制程序运行
具体步骤如下:
(1) 选择“组建”菜单→“开始调试”子菜单的“去”命令,或单击“编译微型条”
中的按钮,自动调试器。
(2) 程序运行后在客户区单击鼠标左键,由于程序中该消息的映射函数中设置了断点,
因此程序会在该断点处停顿下来。
(3) 这时可以看到有一个黄色小箭头,它指向即将执行的代码。而且,原来的“编译”
菜单会变成“Debug”)(调试)菜单,如图所示。
MFC基本应用程序的建立-----VC++程序实验报告
其中4条命令Step Into、Step Over、Step Out和Run to Cursor是用于控制程序运行的,其含义是:
①Step Over的功能是运行当前箭头指向的代码(只运行一条代码)
②Step Into的功能是如果当前箭头所指向的代码是一个函数的调用,则用Step Into进入该函数进行单步执行
③Step Out的功能是如果当前箭头所指向的代 …… 此处隐藏:3285字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [法律文档]苏教版七年级语文下册第五单元教学设计
- [法律文档]向市委巡视组进点汇报材料
- [法律文档]绵阳市2018年高三物理上学期第二次月考
- [法律文档]浅析如何解决当代中国“新三座大山”的
- [法律文档]延安北过境线大桥工程防洪评价报告 -
- [法律文档]激活生成元素让数学课堂充满生机
- [法律文档]2014年春学期九年级5月教学质量检测语
- [法律文档]放射科标准及各项计1
- [法律文档]2012年广州化学中考试题和答案(原版)
- [法律文档]地球物理勘查规范
- [法律文档]《12系列建筑标准设计图集》目录
- [法律文档]2018年宁波市专技人员继续教育公需课-
- [法律文档]工会委员会工作职责
- [法律文档]2014新版外研社九年级英语上册课文(完
- [法律文档]《阅微草堂笔记》部分篇目赏析
- [法律文档]尔雅军事理论2018课后答案(南开版)
- [法律文档]储竣-13827 黑娃山沟大开挖穿越说明书
- [法律文档]《产品设计》教学大纲及课程简介
- [法律文档]电动吊篮专项施工方案 - 图文
- [法律文档]实木地板和复合地板的比较
- 探析如何提高电力系统中PLC的可靠性
- 用Excel函数快速实现体能测试成绩统计
- 教师招聘考试重点分析:班主任工作常识
- 高三历史选修一《历史上重大改革回眸》
- 2013年中山市部分职位(工种)人力资源视
- 2015年中国水溶性蛋白市场年度调研报告
- 原地踏步走与立定教学设计
- 何家弘法律英语课件_第十二课
- 海信冰箱经销商大会——齐俊强副总经理
- 犯罪心理学讲座
- 初中英语作文病句和错句修改范例
- 虚拟化群集部署计划及操作流程
- 焊接板式塔顶冷凝器设计
- 浅析语文教学中
- 结构力学——6位移法
- 天正建筑CAD制图技巧
- 中华人民共和国财政部令第57号——注册
- 赢在企业文化展厅设计的起跑线上
- 2013版物理一轮精品复习学案:实验6
- 直隶总督署简介




