《2022年vc入门经典教程 .pdf》由会员分享,可在线阅读,更多相关《2022年vc入门经典教程 .pdf(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验一:熟悉VC 开发环境,体验MFC(Microsoft Foundation Class)编程方式1 Visual C+集成开发环境下面是 Visual Studio 界面,可以进行c/c+ 程序的编辑、编译和运行。2 “不做任何事情”的应用程序1)运行 AppWizard 来产生 SDI 应用程序。VC 提供了一个AppWizard 向导来帮助用户创建不同类型的应用程序,这里我们创建较为简单的单文档程序。在File 菜单项中选择New,然后在 New 对话框中单击Project 标签,显示如下:确保选择 MFC AppWizard(exe), 并填好上面的项目名称(project nam
2、e 标签 )和项目所在目Workspace工作区源代码区编译调 试输出区名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 25 页 - - - - - - - - - 录(location 标签 )。单击OK 按钮,我们下面通过一系列AppWizard 屏幕操作来建立项目,首先是下面的屏幕:这里选择Single Document 选项。然后在接下去的四个屏幕节目上都接受默认参数。最后的屏幕提示如下图所示:注意, 类名和源文件名已经根据项目名产生了,一般类名的默认取名规则是以
3、C 开头 ,接着是项目名,称最后接上功能名称。上图中的这几个类分别继承于MFC提供的类CView 、CWinApp 、CFrameWnd 和 CDocument。 CTest01App 的对象代表了应用程序,CMainFrame类的对象代表着应用程序的主框架窗口。一般文件的命名比类的命名少开头的C 字母。单击 Finish 按钮。在AppWizard 产生源代码之前,他将显示New Project Information 对话框,如下图所示。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - -
4、 第 2 页,共 25 页 - - - - - - - - - 用鼠标单击OK 按钮, AppWizard就会开始创建应用程序的子目录( 比如此例,在下的 test01)和该子目录下的一些文件。2) 对所产生的代码进行编译和链接。可以通过选择Build 菜单中的Build test01.exe 菜单项来创建应用程序或者单击工具栏按钮。如果创建成功,在应用程序所在目录F:myprojecttest01下将建立一个新的Debug目录,在该目录下将生成一个可执行文件test01.exe。3) 测试最终应用程序选择 Build 菜单中的Execute test01.exe 或者单击工具栏按钮。 运行结
5、果如下所示: AppWizard 已经为我们完成了一系列可视化的功能,包括标题栏, 菜单栏,工具栏等等,因为这些界面元素属于一般的可视化程序都会拥有的,所以AppWizard 为我们自动生成这些功能,以减少程序员的工作。在Test01 目录下会生成很多文件,其中以.dsw 为后缀的文件是工作区文件, 可以通过双击该文件或者通过Visual studio 集成开发环境中的File 菜单下的 open workspace 条目、在弹出的对话框中选中该文件来打开整个项目。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 -
6、 - - - - - - 第 3 页,共 25 页 - - - - - - - - - 3 往 test01 程序中加入绘制代码,实现文字的输出并画一个灰色的圆:如下图:1) 编辑 test01View.cpp 中的 OnDraw 函数。选择 Workspace 工作区中的FileView 选项卡,双击test01View.cpp 打开该文件的源码,如下图:在 test01View.cpp 中找到 OnDraw 函数:void CTest01View:OnDraw(CDC* pDC) CTest01Doc* pDoc = GetDocument(); ASSERT_VALID(pDoc); /
7、 TODO: add draw code for native data here 然后用下面带阴影的代码来替代原来的代码:void CTest01View:OnDraw(CDC* pDC) pDC-TextOut(0,0,Hello,world!); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 25 页 - - - - - - - - - CPen pen(PS_SOLID, 1, RGB(255,0,0); /实心的宽度为1 的红色的笔,用来显示线条CPen *o
8、ldPen=pDC-SelectObject(&pen); /将笔选进 CDC 设备上下文CBrush brush(RGB(0,0,0); /黑色的刷子,用来填充封闭区域CBrush *oldBrush=pDC-SelectObject(&brush); /选进刷子,并返回CDC 中先前的刷子pDC-Ellipse(CRect(0,20,100,120); /画椭圆,以参数为外接矩形pDC-SelectObject(oldPen); / 恢复先前的笔pDC-SelectObject(oldBrush); / 恢复先前的刷子 OnDraw 函数是 CView 类的一个虚成员函数,CView 类是
9、 MFC 提供的一个基本类。而CTest01View 类是 CView 的子类。 每次窗口需要被重新绘制时,比如当用户改变了窗口尺寸时,应用程序框架都会调用OnDraw 函数重新绘制窗口。OnDraw 函数的参数是CDC 类的指针, CDC 类是设备上下文, 用来控制设备驱动程序,比如在屏幕上输出文字或图形。这里的三条语句用到了CDC 类的三个成员函数,TextOut函数用来在指定的坐标点输出一个字符串,其中的前两个参数是坐标点,第三个参数是字符串。CDC 类的 SelectObject 函数用来将笔、 刷子等选进CDC 对象中,以备后面的使用。 CDC中本身有默认的黑色的笔,白色的刷子, S
10、electObject 函数返回CDC 中的这些先前的笔或刷子对象。在使用完新的笔或刷子之后,需要将原来的笔或刷子恢复。CDC 类的 Ellipse 函数以外接矩形为范围画一个椭圆。CRect 是一个代表矩形的类,由MFC 提供,前两个参数表示左上角左边,后两个参数表示右下角坐标,该椭圆会用前面选中的画刷来填充。几个常用的MFC 提供的类还有CPoint, CSize. 程序的运行结果如下:同学们可以用MSDN 查看这些函数来进一步的了解这些函数的使用。也可以试着改变这些参数来查看程序运行结果的变化。测试题:1)在窗口其他区域用虚线蓝色笔和红色刷子再画一个矩形2)使用CDC 类的 MoveTo
11、和 LineTo函数在窗口中画绿色直线名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 25 页 - - - - - - - - - 实验二:基本的事件处理, 实现当鼠标指针落在椭圆的外接矩形内时,每按一下鼠标左键,椭圆就会改变颜色。如下图:1 用 AppWizard 产生一个名为test02 的 SDI(选中 single document)项目,并将他放在F:myproject 下,创建时所采用的一些选项及默认类名如下所示(参照实验一的创建步骤):2 在类 CTest0
12、2View 中加入数据成员m_rectEllipse 和 m_nColor。private: CRect m_rectEllipse; int m_nColor; 在 CTest02View 类中加入如上的两个成员变量,可以找到test02View.h 文件直接编辑添加,也可以通过如下的方式来添加:在 workspace 工作区找到CTest02View 类,鼠标右击该类,选择Add Member V ariable. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 25
13、 页 - - - - - - - - - 在弹出的对话框中填入如下的成员变量以及即可。3用 ClassWizard 在 CTest02View 类中加入消息控制函数在 Developer Studio 的 View 菜单中选择ClassWizard, 在弹出的对话框中找到如下图所示的项目名、类名、对象,以及消息。双击Messages栏下的 WM_LBUTTONDOWN消息,将在 Member functions 栏中出现一个OnLButtonDown 的成员函数。 再按下 Edit Code 按钮进入对该消息响应函数的编辑。名师资料总结 - - -精品资料欢迎下载 - - - - - - -
14、- - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 25 页 - - - - - - - - - 4 编辑 CTest02View.cpp 中的 OnLButtoDown代码。void CTest02View:OnLButtonDown(UINT nFlags, CPoint point) / TODO: Add your message handler code here and/or call default CView:OnLButtonDown(nFlags, point); OnLButtoDow函数的第二个参数用传递放鼠标左键按下时
15、的位置然后用下面带阴影的代码来替代原来的代码:void CTest02View:OnLButtonDown(UINT nFlags, CPoint point) if(m_rectEllipse.PtInRect(point) if(m_nColor=GRAY_BRUSH) m_nColor=WHITE_BRUSH; else m_nColor=GRAY_BRUSH; InvalidateRect(m_rectEllipse); /使矩形区域无效, 引发重绘操作, 从而调用OnDraw 函数 PtInRect 是 Crect 类的成员函数,用来测试一个点是否落在某个矩形内。5 编辑 CTest
16、02View.cpp 中的构造函数和OnDraw 函数用下面带阴影的代码来替代原来的代码:CTest02View:CTest02V iew():m_rectEllipse(0,0,200,200) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 25 页 - - - - - - - - - m_nColor=GRAY_BRUSH; void CTest02View:OnDraw(CDC* pDC) pDC-SelectStockObject(m_nColor); /该函数
17、能直接选进系统提供的几个刷子或笔pDC-Ellipse(m_rectEllipse); 6编译并运行test02 程序选择 Build 菜单中的Build 选项,或者在工具栏上单击按钮,然后再选择Build 菜单中的Execute test02.exe,或者在工具栏上单击按钮。运行结果如下所示:视窗中的圆会随着鼠标左键的按下不断地在灰色和白色中切换。同样的道理, 可以实现对鼠标左键松开消息WM_LBUTTONUP和鼠标右键按下和松开消息WM_RBUTTONDOWN、WM_RBUTTONUP以及鼠标移动消息WM_MOUSEMOVE ,还有键盘按下字符的消息WM_CHAR 等等。测试题:利用已学的
18、鼠标响应和用CDC 类的知识,增加下面的功能1)利用对 WM_CHAR 消息的响应,来实现从键盘获得字符并将其显示到视窗上2)在视窗内的椭圆所属的外界矩形之外,在鼠标左键按下的点和左键松开的点之间画线条。效果如下图:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 25 页 - - - - - - - - - 要用到的新函数如下:GetDC, ReleaseDC,这两个函数用来获得和释放CDC 对象 ,以便作图。名师资料总结 - - -精品资料欢迎下载 - - - - -
19、- - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 25 页 - - - - - - - - - 实验三:模式对话框和控件,熟悉对话框和多种控件的使用如下图:1 运行 AppWizard 来产生 test03 项目从Developer Studio 的File 菜 单 中 选 择New,然 后 单 击 Project标签 , 并 选择MFC AppWizard(exe) 。除了下面两项以外,其他都用默认设置:选择Single Document 和取消对Print And Print Preview的选中。最后的选项及默认类名如下图所示
20、:2 用标志符 (ID) IDD_DIALOG1来创建一个新的对话框从 Developer Studio 的 Insert 菜单中选择 Resource,出现Insert Resource 对话框。在 Dialog上单击,然后单击New. Developer Studio 将创建一个新的对话框资源,如下图所示名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 25 页 - - - - - - - - - 3 设置对话框的标题如果我们用鼠标右键在新的对话框中单击,并从弹出的菜
21、单中选择Properties,则屏幕上将出现 Dialog Properties 对话框。按照下图所示的内容输入新对话框的标题。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 25 页 - - - - - - - - - 4 设置对话框风格单击位于Dialog Properties 对话框上面的Style 标签,然后按下图设置风格属性。5 设置对话框的附加风格单击位于Dialog Properties 对话框上面的More Style 标签,然后按下图设置风格属性。6
22、加入对话框控件利用控件工具箱加入每一个控件。(如果控件工具箱不在屏幕上的话,可在任何工具栏上单击右键,然后从列表中选择Controls. )名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 25 页 - - - - - - - - - Name 字段的静态文本控件:静态文本控件只是简单地在屏幕上显示一字符串。Name 编辑控件:编辑控件是在对话框中输入文本的最基本的手段。右键单击该控件,然后选择Properties,将该控件的ID 由 IDC_EDIT1变为 IDC_NA
23、ME, 其他一些特性都取默认值。SS Nbr( 社会安全号码 )编辑控件:这个控件和Name 编辑控件是完全一样的,只是要讲其 ID 改为 IDC_SSN 。后面我们将利用ClassWizard 使之变为数字域。Bio(简历 )编辑控件:这是一个多行编辑控件。将他的ID 改为IDC_BIO, 然后按下图设置它的属性:Category 分组框: 这个控件只用来表明其中的两个单选按钮是属于一组的。键入它的标题 Category,使用默认的ID 值就行了。Hourly 和 Salary 单选按钮:将这两个单选按钮定位在Category 分组框中,将Hourly 按钮的 ID 设为 IDC_CAT,它
24、的其余属性按下图设置。图象编辑框按钮单选按钮列表框垂直滚动条进度条热键树状控件IP 地址控件动画控件扩展的组合框选择静态文本分组框复选框组合框水平滚动条微调按钮滑块列表控件选项卡控件复文本编辑控件日历控件用户自定义控件时间控件名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 25 页 - - - - - - - - - 要保证这两个按钮都设置了Style 选项卡上的Auto 属性 (默认设置 ),并且只有Hourly 按钮设置了 Group 属性。当这些属性都被正确设置了
25、以后,Windows 就会保证每次这两个按钮都只能被选中一个。Category 分组框对这些按钮的操作没有任何影响。Insurance 分组框:这个控件包含了三个复选框。键入它的标题Insurance. Life, Disability和 Medical 复选框:将这些复选框放在Insurance 分组框中,它们的属性全都取默认属性,但要把他们的ID 分别改为IDC_LIFE, IDC_DIS和 IDC_MED 。和单选按钮不同的是,复选框是相互独立的,用户可以设置任意的组合。Skill 组合框:这是本例中三种组合框类型中的第一个组合框。将他的 ID 改为 IDC_SKILL,单击 Style
26、 标签, 设置 Type 选项为 Simple.单击 Data 标签,在 Enter Listbox Item框中加入三项技能(每一行用CtrlEnter 结束) ,如下图所示:这是一个Simple 类型的组合框。用户既可以在上面的编辑控件中输入任何内容,也可以用鼠标来选择与之相连的列表框中的条目,或通过上下方向键来选择与之相连的列表框中的内容。Educ(教育程度 )组合框:将它的ID 改为 IDC_EDUC, 使用默认设置,然后再在Data 选项卡上加入三种教育程度。如下图所示名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名
27、师精心整理 - - - - - - - 第 15 页,共 25 页 - - - - - - - - - 借助于这种下拉式组合框,用户既可以在上面的编辑框中输入任何内容,也可以点一下其中的箭头, 然后从拉出的列表框中选择条目,或者用上下方向键从与之相连的列表框中选择条目。Dept(部门 )列表框:将它的ID 改为 IDC_DEPT, 它的其余属性全部取默认值。Lang(语言 )组合框:将它的ID 改为 IDC_LANG ,然后单击Style 标签,将他的Type 选项置成 Drop List, 并在 Data 选项卡上加入三种语言(English, French 和 Spanish)如下图:OK
28、, Cancel 和 Special 按钮:将Special 按钮的 ID 设为 IDC_SPECIAL.7 用 ClassWizard 为刚刚生成的对话框资源创建对话框类a. 从 Developer Studio 的 View 菜单中选择ClassWizard。此时要保证新创建的IDD_DIALOG1对话框仍然在对话框编辑器中被选中,并且 test03 仍然是 Developer Studio 的当前项目。b 加入 CTest03Dialog 类ClassWizard 检测到已经创建了一个新的对话框资源但还没有相关联的C+类,因此他会询问是否创建一个新类,如下图所示:接受默认选择Create
29、 A New Class 然后单击OK, 并按下图填写New Class 对话框顶部的各个域:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 25 页 - - - - - - - - - c 加进 CTest03Dialog 的变量当 ClassWizard 创建完CTest03Dialog 类后,屏幕上就会弹出Class Wizard 对话框,请在Member Variables 标签上单击, 此时屏幕上就会出现Member Variables 选项卡, 如下图所示:
30、我们需要将数据成员同相应的对话框控件联系起来。为了做到这一点,请在相应的控件ID上单击,然后在单击Add Variable 按钮,此时屏幕上会立刻弹出如下图所示的Add Member Variable 对话框:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 25 页 - - - - - - - - - 请按照下表键入成员变量名,并选择正确的变量类型。然后请单击OK,返回 MFC ClassWizard对话框。请对下表列出的每一个控件都重复此过程。控件 ID 数据成员类型
31、IDC_BIO m_strBio CString IDC_CA T m_nCat int IDC_DEPT m_strDept CString IDC_DIS m_bInsDis BOOL IDC_EDUC m_strEduc CString IDC_LANG m_nLang int IDC_LIFE m_bInsLife BOOL IDC_MED m_bInsMed BOOL IDC_NAME m_strName CString IDC_SKILL m_strSkill CString IDC_SSN m_nSsn int d. 为 Special 按钮加入消息控制函数在 ClassWiza
32、rd 对话框的 Object Ids 列表框中,应该包含有IDC_SPECIAL, 请在该条目上单击,然后再在Messages列表框中的BN_CLICKED消息上双击,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 25 页 - - - - - - - - - ClassWizard 就会给出一个成员函数名:OnSpecial,并打开如下图所示的Add Member Function对话框:请单击OK, 然后再在MFC ClassWizard 对话框中单击Edit Co
33、de 按钮,这就将文件Test03Dialog.cpp 打开了, 并将光标移到了OnSpecial 函数处。 用下面的带阴影的代码代替已有的代码,以在On Special 函数中插入一条TRACE 语句void CTest03Dialog:OnSpecial() TRACE(CTest03Dialog:OnSpecialn); TRACE 函数用来在调试时输出信息。e利用 ClassWizard 加入 OnInitDialog 消息控制函数OnInitDialog函数用来对列表框的选项进行初始化,它响应消息WM_INITDIALOG. 请在ClassWizard 对话框中的Object Ids
34、 列表框中单击CTest03Dialog, 然后再在Messages列表框中双击 WM_INITDIALOG消息,然后再单击MFC ClassWizard 对话框中的Edit Code 按钮,对 OnInitDialog 函数进行编辑。键入以下带阴影的代码来代替已有的代码:BOOL CTest03Dialog:OnInitDialog() CListBox * pLB=(CListBox *)GetDlgItem(IDC_DEPT); pLB-InsertString(-1,Documentation); pLB-InsertString(-1,Accounting); pLB-InsertS
35、tring(-1,Human Relations); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 25 页 - - - - - - - - - pLB-InsertString(-1,Security); return CDialog:OnInitDialog(); 8 将对话框与视图相连接a. 在 ClassWizard 中选择 CTest03View 类。b. 利用 ClassWizard 加入 OnLButtonDown成员函数前面例子中已经做过这一工作,只需
36、简单的在Object IDs 列表框中单击CTest03View 以选中CTest03View 类,然后双击WM_LBUTTONDOWN消息即可。c. 为文件 Test03View.cpp 中的 OnLButtonDown 函数编写代码加入下图带阴影的代码,void CTest03View:OnLButtonDown(UINT nFlags, CPoint point) CTest03Dialog dlg; dlg.m_strName=Shakespeare,Will; dlg.m_nSsn=307806636; dlg.m_nCat=1; /0=hourly,1=salary dlg.m_s
37、trBio=This person is not a well-motivated tech writer; dlg.m_bInsLife=TRUE; /TRUE 是选中状态dlg.m_bInsDis=FALSE; dlg.m_bInsMed=TRUE; dlg.m_strDept=Documentation; dlg.m_strSkill=Writer; dlg.m_nLang=1; int ret=dlg.DoModal(); /启动对话框TRACE(DoModal return=%dn,ret); TRACE(nam=%s,ssn=%d,cat=%dn,dlg.m_strName,dlg
38、.m_nSsn,dlg.m_nCat); TRACE(dept=%s,skill=%s,educ=%sn,dlg.m_strDept,dlg.m_strSkill,dlg.m_strEduc); TRACE(life=%d,dis=%d,med=%d,bio=%sn,dlg.m_bInsLife,dlg.m_bInsDis, dlg.m_bInsMed,dlg.m_strBio); d 向文件 test03View.cpp 中的虚函数OnDraw 中加入代码为了提示用户按下鼠标左键,我们需要重新编写CTest03View:OnDraw函数 (该函数的框架已由 AppWizard 生成 ),用如
39、下带阴影的代码来替代原有的代码:void CTest03View:OnDraw(CDC* pDC) pDC-TextOut(0,0,Press the left mouse button here.); e 在 test03View.cpp 文件中加入对对话框类的包含语句上面所介绍的OnLButtonDown函数依赖于对CTest03Dialog 类的声明,因此我们必须将包含语句#include “ test03Dialog.h ”名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20
40、 页,共 25 页 - - - - - - - - - 加到 CTest03View 类的源代码文件(test03View.cpp) 的上部,并且将它放在#include “ test03View.h ”语句之后9 编译和测试该应用程序。运行结果如下图:如果选择工具栏上的调试按钮,则用户在该对话框中的一些改动信息将出现在debug 窗口中,比如测试题:1 左键点击视窗区域,弹出一个如下图所示的对话框名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 25 页 - - - -
41、 - - - - - 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 25 页 - - - - - - - - - 实验四基于对话框的应用程序,实现一个简单的计算器1.运行 AppWizard 产生 f:myprojecttest04 。在 AppWizard 的 Step1 对话框里选择Dialog Based 选项,如下图所示:在下面的对话框里,输入Calculator 作为对话框的标题。2.编辑 IDD_TEST04_DIALOG资源。参考下图,用对话框编辑器为控
42、件分配相应的ID ,如下表所示:控件ID 左操作数编辑控件IDC_LEFT 右操作数编辑控件IDC_RIGHT 结果编辑控件IDC_RESULT 第一个单选按钮(设置组属性,参考前面例子)IDC_OPERATON 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 25 页 - - - - - - - - - 计算按钮IDC_COMPUTE 打开属性对话框并单击Style 标签,选择System Menu 和 Minimize Box 选项。3.用 Class Wizard
43、 加入成员变量和命令控制函数。 AppWizard已经为我们产生了类CTest04Dlg,请加入下面的数据成员:控件 ID 成员变量类型IDC_LEFT m_dLeft double IDC_RIGHT m_dRight double IDC_RESULT m_dResult double IDC_OPERATON m_nOperation int 为 IDC_COMPUTE 按钮加入消息控制函数OnCompute。4.在 test04Dlg.cpp 文件中编写OnCompute 成员函数。请加入下面带阴影的代码void CTest04Dlg:OnCompute() UpdateData(TR
44、UE); /更新,参数TRUE 表明更新数据,FALSE 表明更新对话框switch(m_nOperation) case 0:m_dResult=m_dLeft+m_dRight; break; case 1:m_dResult=m_dLeft-m_dRight; break; case 2:m_dResult=m_dLeft*m_dRight; break; case 3:if(m_dRight!=0.0) m_dResult=m_dLeft/m_dRight; else AfxMessageBox(Divide by zero); m_dResult=0.0; break; defaul
45、t: TRACE(default;m_nOperation=%dn,m_nOperation); UpdateData(FALSE); 5 编译和测试test04 应用程序。运行结果如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 25 页 - - - - - - - - - 测试题:1 用以下的形式实现一个简单的计算器名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 25 页,共 25 页 - - - - - - - - -