《使用mfc进行可视化编程》由会员分享,可在线阅读,更多相关《使用mfc进行可视化编程(8页珍藏版)》请在金锄头文库上搜索。
1、学生实验报告开课实验室: 2011 年 6 月 25 日学院 年级、专 业、班 姓名 学号实验课程名称 面向对象程序设计实验 成绩实验项目名称 使用 MFC进行可视化编程 指导老师一、 实验目的及要求:了解 MFC类的层次结构及主要类的用法,掌握使用 MFC和向导来编写 Windows应用程序。控件是 Windows图形用户界面的主要组成部分之一,用户通过操作控件对象完成与应用程序之间的交互。本实验要求通过对控件相关知识的学习,目的是要掌握静态控件、按钮、流动条、编辑框、列表框、组合框和对话框的创建、消息发送和控件控制等内容。要求:(1)掌握 MFC类的层次结构及主要类的用法。 (2)使用应用
2、程序向导创建 MFC类的 Windows应用程序。 (3)使用静态控件、按钮、流动条、编辑框、列表框、组合框和对话框等创建应用程序。二、实验设备计算机:PC 系统软件平台:Windows XP 操作系统,Visual C+ 6.0 集成开发系统。三、实验原理利用 Visual C+ 6.0开发环境,对实验所要求的程序设计项目,编辑 C语言源程序并形成 .cpp 源代码文件,再编译.cpp 文件形成 .boj 目标代码文件,经过.boj 文件与系统标准代码的连接形成 .exe 可执行代码文件,运行.exe 文件以得到实验所期望的结果。四、实验步骤1. 打开 PC机并启动 Windows XP操作
3、系统(利用实验设备)2. 开启 Visual C+ 6.0集成开发系统(形成软件开发环境)3. 程序设计(按要求可先设计算法并给出流程图)4. 编辑(生成 .cpp 源程序文件)5. 编译(调试并生成 .boj 目标文件)6. 连接(调试并生成 .exe 可执行文件)7. 运行(调试并得到预期的程序执行结果)8. 按实验要求分析实验结果五、实验过程及原始纪录(数据,图表,计算等)六、实验结果及分析8.1_1:用 MFC的向导创建编辑框,在编辑框中实现算术“加” 、 “减” 、 “乘”及“除”的运算,界面如图 13-1所示。图 13-1 具有“加” 、 “减” 、 “乘”及“除”运算功能的界面实
4、验步骤:1、利用 MFC向导建立程序框架,在 MFC AppWizard Step1中选择 Dialog based。其余都采用默认选项。这样建立了一个基于对话框的程序。2、利用资源编辑器,建立对话框:在 Resource View 选项卡中打开 Dialog资源组,由于程序的文件名为 editor, 因此,系统自动产生一个名为 IDD_editor_DIALOG的资源文件,在 ResourceView资源组框中双击 IDD_editor_DIALOG,如图 13-2所示。然后在右边的窗口中显示出待编辑的对话框。根据如图 13-1所示的样式建立对话框。图 13-2 ResourceView资源
5、组框下面以“数据 1”编辑框和“加”按钮为例介绍控件的创建过程,其余的编辑框和按钮可参照此操作:(1) 在控件工具栏中选择“编辑框” ,在控件工具上单击鼠标左键,在如图 13-1所示的对话框编辑窗口上“数据 1”编辑框的位置上,画出一个大小合适的编辑框。然后在对话框上单击鼠标右键,对该编辑框上的 Properties属性进行设置,如图 13-3所示,设置对话框的 ID属性。图 13-3 Edit Properties对话框(2) 在图 13-1的“加”按钮的位置上,画出一个大小合适的下压式按钮。设置该按钮的Properties选项,如图 13-4所示,设置该控件的 ID值和 Caption属性
6、。图 13-4 按钮“加”的属性设置按照上面的操作过程编辑各按钮或编辑框等对象的属性。见表 13-1所示。表 13-1 对象属性表对象 ID Caption编辑框 IDC_ITEM1_EDIT编辑框 IDC_ITEM1_EDIT编辑框 IDC_RESULT _EDIT按钮 IDC_ADD_BUTTON Add按钮 IDC_DIFFERENCE_BUTTON Difference按钮 IDC_MULTIPLY_BUTTON Multiply按钮 IDC_DEVIDE_BUTTON Devide按钮 IDC_EXIT_BUTTON Exit(3) 添加代码1)给编辑框连接变量:在任何一个编辑框上单
7、击鼠标右键,设置 ClassWizard菜单项,弹出 MFC Class Wizard对话框,选择 Member Variables 选项卡。然后在 Control IDs 列表框中,选中IDC_ITEM1_EDIT,单击 Add Variable按钮,在弹出的对话框中连接变量 m_Item1_Edit.,结果如图13-5所示。按照上面的操作过程给另两个编辑框加入变量见表 13-2所示。图 13-5 MFC Wizard中的 Member Variables选项卡表 13-2 三个编辑框变量表ID 变量 变量类型ID_ITEM1_EDIT m_Item1_Edit CEditID_ITEM2_
8、EDIT m_Item1_Edit CEditID_ITEM3_EDIT m_Item1_Edit Cstring2)给四个按钮连接代码: 在“加”按钮上单击鼠标右键,选择 ClassWizard,在弹出的对话框中选择 Message Maps选项卡,在 Object IDs列表框中选择 IDC_ADD_BUTTON,在 Messages列表框中选择 BN_CLICKED选项,即选择单击按钮事件。单击右边的 Add Function按钮,在弹出的对话框中接受默认的名字,执行结果如图 13-6所示。单击 Edit Code 按钮,此时显示源代码文件,在函数OnAddButton()中输入下列代码
9、:图 13-6 为按钮连接代码void CEditorDlg:OnAddButton() char cstrItem110,cstrItem210;double dfItem1,dfItem2,dfResult;char cBuffer10;m_Item1_Edit.GetWindowText(cstrItem1,10);m_Item2_Edit.GetWindowText(cstrItem2,10);dfItem1=atof(LPCSTR)cstrItem1);dfItem2=atof(LPCSTR)cstrItem2);dfResult=dfItem1+dfItem2;_gcvt (dfR
10、esult,10,cBuffer);m_sResult_Edit=(LPCSTR)cBuffer;UpdateData(FALSE);3)同样的可以给“减” 、 “乘” 、 “除”按钮连接代码,不同的是消息映射函数中执行减、乘及除的操作。减的操作代码如下:void CEditorDlg:OnDifferenceButton() char cstrItem110,cstrItem210;double dfItem1,dfItem2,dfResult;char cBuffer10;m_Item1_Edit.GetWindowText(cstrItem1,10);m_Item2_Edit.GetWi
11、ndowText(cstrItem2,10);dfItem1=atof(LPCSTR)cstrItem1);dfItem2=atof(LPCSTR)cstrItem2);dfResult=dfItem1-dfItem2;_gcvt(dfResult,10,cBuffer);m_sResult_Edit=(LPCSTR)cBuffer;UpdateData(FALSE);乘的操作代码如下:void CEditorDlg:OnMultiplyButton() char cstrItem110,cstrItem210;double dfItem1,dfItem2,dfResult;char cBuf
12、fer10;m_Item1_Edit.GetWindowText(cstrItem1,10);m_Item2_Edit.GetWindowText(cstrItem2,10);dfItem1=atof(LPCSTR)cstrItem1);dfItem2=atof(LPCSTR)cstrItem2);dfResult=dfItem1*dfItem2;_gcvt(dfResult,10,cBuffer);m_sResult_Edit=(LPCSTR)cBuffer;UpdateData(FALSE);除的操作代码如下:void CEditorDlg:OnDevideButton() char cs
13、trItem110,cstrItem210;double dfItem1,dfItem2,dfResult;char cBuffer10;m_Item1_Edit.GetWindowText(cstrItem1,10);m_Item2_Edit.GetWindowText(cstrItem2,10);dfItem1=atof(LPCSTR)cstrItem1);dfItem2=atof(LPCSTR)cstrItem2);dfResult=dfItem1/dfItem2;_gcvt(dfResult,10,cBuffer);m_sResult_Edit=(LPCSTR)cBuffer;Upda
14、teData(FALSE);4)给“退出“按钮连接代码,利用 ClassWizard将按钮消息 BN_CLICKED加到函数 OnExitButton( )中,例如下列代码:void CEditorDlg:OnExitButton() OnOK();3、建立并运行程序运行后该编辑框能实现“加” 、 “减” 、 “乘”及“除”的运算。如图 13-7所示。图 13-7 实现“加” 、 “减” 、 “乘”及“除”的运算#include stdafx.h#include 加减乘除.h#include 加减乘除 Dlg.h#ifdef _DEBUG#define new DEBUG_NEW#undef
15、THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialogpublic:CAboutDlg();/ Dialog Data/AFX_DATA(CAboutDlg)enum IDD = IDD_ABOUTBOX ;/AFX_DATA/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExchange* pDX); / DDX/DDV support/AFX_VIRTUAL/ Implementationprotected:/AFX_MSG(CAboutDlg)/AFX_MSGDECLARE_MESSAGE_MAP();CAboutDlg:CAboutDlg() : CDialog(CAboutDlg:IDD)/AFX_DATA_INIT(CAboutDlg)/AFX_DATA_INITvoid CAboutDlg:DoDataExchange(CDataExchange* pDX)CDial