1VC++6.0上机操作指南贵州大学计算机科学与技术学院张志明2006年9月2目录1.VisualC++控制台应用程序上机实现步骤2.MFC对话框应用程序实现举例3.MFC单文档应用程序实现举例4.用32位调试程序了解类和对象的内存映象31.VisualC++控制台应用程序(Win32ConsoleApplicationProject)上机实现步骤一.单文件程序的实现本教材中的程序在VisualC++环境下都是以Win32ConsoleApplication项目实现,而且都是单文件程序,即只含有一个源程序(.cpp)文件的C++程序。一个单文件程序在VisualC++IDE中的实现主要步骤是:(1)建立新项目(2)建立新文件(3)输入源代码(4)编译、连接,生成可执行程序文件。以上步骤均可在VisualC++的Wizard指导下通过对话框交互输入完成。1.建立新项目:每个C++程序的实现都要建立一个项目。所谓项目是一个文件生成过程的管理单位,项目名称就是最后实现的可执行文件的名称,一个项目就是与生成这个可执行程序文件相关的所有源文件和中间文件的集合,存放在以项目名称命名的文件夹中。图1MicrosoftVisualC++6.0系统初始界面执行菜单命令FileNew,打开New对话框:4图2打开New对话框在New对话框的Project选项卡中选择Win32ConsoleApplication选项,然后输入项目存放位置项目名称后确定。图3输入项目位置和名称在Win32ConsoleApplication-Step1of1对话框中选择Anemptyproject,完成后返回。系统弹出新建项目信息报告对话框。5图4Win32ConsoleApplication-Step1of1对话框图5新建项目信息报告62.建立新文件:再一次执行菜单命令FileNew,打开New对话框,在File选项卡中选择C++SourseFile选项,然后输入源程序文件名。完成后系统打开源程序(.cpp)文件编辑窗口。图6在New对话框输入源程序文件名3.输入源代码:此时即可在源程序(.cpp)文件编辑窗口输入源程序代码。图7源程序(.cpp)文件编辑窗口74.生成和运行可执行程序文件:11从源程序文件生成可执行文件,需要经历编译,连接两步,在VC++6.0编程环境中可以有以下几种操作方式:(1)打开Build(编译)菜单,先执行Compile命令,接着再执行Build命令。(2)打开Build(编译)菜单,执行RebuildeAll命令。(3)打开Build(编译)菜单,直接发出Execute执行命令,一次性完成编译、连接和启动程序执行的任务。(4)直接单击“!”(BuildExecute)命令按钮,一次性完成编译、连接和启动程序执行的任务。图8Build(编译)菜单8图9程序运行结果打开工程文件夹可以找到该工程的所有工作文件。打开工程文件夹中的Debug子文件夹,可以找到生成的可执行(.exe)文件。9二.多文件程序的实现一个较大型C++程序,有时需要包含多个源程序文件。一种常见的情况是将类的定义放在头(.h)文件中,将类的实现或对类的访问放在源(.cpp)文件中。多文件程序的实现与单文件程序的实现方式需要经历同样的步骤,不同的是,在编译之前需要利用新建文件对话框逐一将所有需要的文件追加到项目中。1.建立新项目:102.建立新文件:(1)加入和编辑头文件:在New对话框,在File选项卡中选择C/C++HeaderFile选项,然后输入头文件名。完成后系统将打开源程序(.h)文件编辑窗口。11(2)加入和编辑源程序文件打开New对话框,在File选项卡中选择C++SourseFile选项,然后输入源程序文件名。完成后系统打开源程序(.cpp)文件编辑窗口。注意:在源程序文件中应该用文件包含命令将头文件包含进来。如下例源程序文件s719.cpp的第一行:#includeh719.h123.生成和运行可执行程序文件:步骤同单文件程序的生成和执行。#132.MFC对话框应用程序实现举例本指导书给出3个MFC对话框应用程序的实现实例,例1为求三科平均成绩的简单程序,例2为实现一个具有四则运算功能的简单计算器,例3为一个彩票机程序(提供手动摇号和自动摇号两个彩票机程序版本)。通过这些程序可以达到以下目的:掌握AppWizard的使用方法。掌握Workshop中各种视图的使用和在不同视图之间切换的方法。学会利用控件工具箱中的控件定制对话框界面。学会控件变量及其他类成员变量的设置。学会消息映射的概念和操作方法。学会查看和编辑代码。学习编译、运行和调试对话框应用程序。例1.实现一个求三科平均成绩的MFC对话框应用程序。假设运行时的界面如下:实现步骤:1.在VisualC++6.0工作开发环境中,New对话框中选择MFCAppWizard[exe]项目,输入项目名称并指定存放位置。142.在MFCWizardStep1选择Dialog(基本对话)程序类型,在MFCWizardStep2中输入对话框标题“求平均成绩”。AppWizard对话结束后打开对话框编辑窗口如下:153.定制界面:添加控件、设置属性删除对话框模板中原有的“确定”按钮和内容为“TODO:在这里设置对话控制。”的StaticText控件。在控件工具箱中取一个GroupBox控件,调整适当大小,鼠标右键单击该控件边框,在弹出的下拉菜单中打开属性对话框。将GroupBox控件标题由“Static”改为“求平均分”。16在GroupBox中添加4个StaticText控件,按同样方法修改它们的标题属性为“成绩1”、“成绩2”、“成绩3”和“平均分”。在GroupBox中添加4个EditBox控件,打开属性对话框的ExtendedStyles选项卡中将它们设置为文本右对齐(RightAligendText)方式。其中第4个EditBox控件的Styles属性设置为Read-only。17在GroupBox中添加一个按钮Button1,打开属性对话框将按钮的标题属性改为“计算平均分”。鼠标右键单击“取消”按钮边框,在弹出的下拉菜单中打开属性对话框。将按钮标题改为“退出”。设计完成的界面如图,其中控件属性列表如下:控件ID号标题属性GroupBoxIDC_STATIC求平均分StaticTextIDC_STATIC成绩1StaticTextIDC_STATIC成绩2StaticTextIDC_STATIC成绩3StaticTextIDC_STATIC平均分EditBoxIDC_EDIT1Aligntext:RightEditBoxIDC_EDIT2Aligntext:RightEditBoxIDC_EDIT3Aligntext:RightEditBoxIDC_EDIT4Aligntext:Right;Read-only18ButtonIDC_BUTTON1计算平均分ButtonIDCANCEL退出4.添加成员变量单击View(查看)ClassWizard(建立类向导)菜单进入ClassWizard,打开MemberVariables选项卡:为4个EditBox控件设置对应的变量:同样的方法为其它3个EditBox控件设置变量:控件ID变量名变量类型数值范围IDC_EDIT1m_S1int0~100IDC_EDIT2m_S2int0~100IDC_EDIT3m_S3int0~100IDC_EDIT4m_SavCString195.添加消息映射(两条消息)进入ClassWizard,打开MessagesMaps选项卡,在ObjectIds中选择CAverageDlg,在Messages中鼠标单击WM_INIDIALOG,在Memberfunctions中出现生成的消息映射成员函数OnInitDialog提示:在ObjectIds中选择IDC_BUTTON1,在Messages中鼠标单击BN_CLIKED,在弹出对话框中单击OK按钮:在Memberfunctions中出现第二个生成的消息映射成员函数OnButton1。206.添加代码在ClassWizard中双击OnInitDialog函数,打开代码编辑器中的OnInitDialog()函数代码,找到其中的//TODO:Addextrainitializationhere,加入下面的黑体字给出的3行代码:BOOLCDlgDlg::OnInitDialog(){CDialog::OnInitDialog();…;//TODO:Addextrainitializationherem_Sav=0.00;m_S1=m_S2=m_S3;UpdateData(FALSE);returnTRUE;//returnTRUEunlessyousetthefocustoacontrol}在ClassWizard中双击OnButton1()函数,打开代码编辑器中的OnButton1()函数代码,找到其中的//TODO:Addextrainitializationhere,加入下面的黑体字给出的4行代码:voidCDlgDlg::OnButton1(){//TODO:AddextrainitializationhereUpdateData();doubleave=(double)(m_S1+m_S2+m_S3)/3.0;m_Sav.Format(%6.2f,ave);UpdateData(FALSE);}7.编译运行程序:21注释:UpdateData()函数的作用是允许更新控件变量,UpdateData(FALSE)禁止更新控件变量的值。22例2.设计MFC对话框应用程序,实现一个具有四则运算功能的简单计算器。1.新建项目:2.定制界面:(1)修改MFCAppWizard自动创建的对话框项目模板。删除模板上自动创建的三个控件。(2)加入“简单计算器”、“请输入数据:”、“结果”三个静态文本框和相应的3个编辑框。(3)加入一个GroupBox,标题修改为“请选择运算符:”,并在其中放入4个RadioButton将标题分别改为“+”、“-”、“*”、“/”。(4)继续用鼠标从工具箱中向对话框添加和3个按钮控件,更改按钮的标题为“计算”、“清除”、“关闭”。233.添加变量本例中用到以下4个CSimpleCalcDlg类的成员变量:变量类型名称floatm_N1floatm_N2floatm_ResultcharOperator用ClassWizard为编辑框添加变量:m_N1,m_N2,m_Result24变量charOperator的添加方法:在WorkSpace中进入ClassView视图,鼠标右键单击CSimpleCalcDlg,在菜单中选择“AddMemberVariable…”然后在弹出的对话框的输入变量类型和名称:254.添加消息映射用ClassWizard为按钮控件添加消息映射:继续用ClassWizard为RadioButton控件添加消息映射:265.加入单击按钮时的事件响应代码在实现文件(cpp文件)中加入单击按钮时的事件响应代码。(双击一个按钮可直接进入函数编辑)//选择运算符voidCSimpleCalcDlg::OnRadio1(){Operator='+';}voidCSimpleCalcDlg::OnRadio2(){Operator='-';}voidCSimpleCalcDlg::OnRadio3(){Operator='*';}voidCSimpleCalcDlg::OnRadio4(){Operator='/';}//计算voidCSimpleCalcDlg::OnButton1(){UpdateData();switch(Operator){case'+':m_Result=m_N1+m_N2;break;case'-':m_Result=m_N1-m_N2;break;case'*':m_Result=m_N1*m_N2;break;