您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > C++课程设计MFC_2015
1/64C++课程设计内容及要求2主要内容1.课程设计基本要求2.Windows编程基础3.什么是VC++的MFC4.什么是MFC编程5.MFC应用程序的开发流程6.单文档【ClassView】面板7.登录对话框与单文档视图联接8.单文档中菜单项与对话框联接9.实例介绍3一、课程设计基本要求自学MFC(2学时)知识扩充C++:了解并掌握MFC程序结构、消息映射机制、MFC类库中的常用类(对话框、各种常用控件)。软件开发的基本知识结合设计任务清楚软件开发的基本流程、各个阶段的目标和主要工作。上机调试程序(30学时)其他(14学时)程序调试的基本方法和论文撰写要求(2学时)掌握调试程序的方法与技巧。清楚论文组织结构、格式编排等相关知识学生资料查阅与自主学习(2学时)代码编写(10学时)4二、Windows编程基础Windows编程就是基于Windows的应用程序。2种重要的Windows应用程序基于对话框的应用程序基于文档/视图结构的应用程序主要特点具有标准的图形用户界面具有与硬件无关的特性采用“消息传递,事件驱动”的运行机制,即根据Windows发送的消息来处理用户的输入编写Windows应用程序的主要方法(2种)使用Windows提供的应用程序接口(API)函数使用Microsoft提供的微软基础类(MFC)5三、什么是VC++的MFCMFC(MicrosoftFoundationClassLibrary,基础类库)是微软提供的用来编写Windows应用程序的C++类库;封装了API(Windows的接口函数),是WinAPI与C++的结合。MFC大约有200多个类,封装了Windows的大部分编程对象以及与它们有关的操作。即它由几百个执行文件和源代码文件组成。注意C++和VC++的区别C++是一种程序设计语言,是一种大家都承认的软件编制的通用规范,即C++是一套语法规则的名字,类似汉语,英语。VC++是一个软件{IDE(编译、编辑、调试)集成开发环境}MFC是一个非外挂式的软件包,类库,MFC类是微软为VC++专配的。6四、什么是MFC编程MFC编程指的就是使用VC++进行开发,并且是在使用VC++提供的各种向导的情况下的MFC编程。在VC++中可以创建3类典型的Windows应用程序基于对话框的应用程序单文档界面(SDI)应用程序多文档界面(MDI)应用程序文档/视图文档对象:用来保存数据。视图对象:用来显示和编辑数据。7五、MFC应用程序的开发流程应用程序编程的基本步骤:(1)根据应用程序的特性在MFCAppWizard[exe]应用程序中选择合适的应用程序框架。(2)利用资源编辑器编辑资源,如菜单等。(3)利用类向导(ClassWizard)或手工添加类、成员变量、成员函数声明。(4)编写具体的成员函数代码。(5)编译、链接程序检查程序中是否存在语法错误。(6)调试应用程序。8六、单文档【ClassView】面板CAboutDlg(关于对话框类)管理关于对话框。CFrameWnd(框架窗口类)CWxling_27App(应用程序类)用来处理消息。CWxling_27Doc(文档类)MFC中的数据是存储在类文档中。文档类负责管理和维护数据本身。CWxling_27View(视图类)结果的显示是在视图类中。视图类负责处理用户鼠标和键盘的操作。9七、登录对话框与单文档视图联接1.新建单文档工程:TEXT(注意此名由设计者自己任取);2.在ResourceView,单击InsertDialog,插入一对话框IDD_DIALOG1(默认ID号);3.右键选中新建的对话框,利用类向导建立一个新类Createanewclass,名称为:Cdlg_login;4.在MainFrm.cpp文件的前面,语句#include“MainFrm.h”的后面添加新类的头文件:#includedlg_login.h5.在FileView中点击sourcefiles,双击MainFrm.cpp。找到:CMainFrame::OnCreate(LPCREATESTRUCTlpCreateStruct),这是窗体框架创建函数。在该函数的后面(在return0;的前面)加入语句(注意大小写):Cdlg_logindlg;//定义一个登录对话框对象dlgdlg.DoModal();//让对话框对象以有模式形式显示出来6.此时对话框与单文档联接完成。7.下载“格式工厂3.011”将自己的照片转换成BMP格式,通过插入Bitmap命令,将照片引入至资源中,并添加至对话框中。10七续、登录对话框退出按钮代码//确定按钮voidCDlg_login::OnOK(){//TODO:Addextravalidationherethis-UpdateData(true);if(this-m_name==wxl&&this-m_paw==1234)CDialog::OnOK();else{MessageBox(登录有误);ExitProcess(0);//退出}//CDialog::OnOK();}//取消按钮voidCDlg_login::OnCancel(){//TODO:AddextracleanuphereExitProcess(0);//退出}11八、单文档中菜单项与对话框联接1.新建单文档工程:Ys1(注意此名由设计者自己任取);2.在ResourceView,单击InsertDialog,插入一对话框IDD_DIALOG1(默认ID号);3.右键选中新建的对话框,利用类向导建立一个新类Createanewclass,名称为:Cdlg_jc(自己命名),如右图1所示;4.在//Ys1View.cpp:文件中语句#includeYs1View.h的后面添加新类的头文件:#includedlg_jc.h5.编辑主菜单如图2所示:6.在主菜下通过“建立类向导”命令,从“Classname”组合框中选择CYs1View,如图3,4所示,并在函数OnJc()编写代码如下:voidCYs1View::OnJc(){//TODO:AddyourcommandhandlercodehereCdlg_jcjc;//定义一个求阶层对话框对象jcjc.DoModal();//让对话框对象以有模式形式显示出来}7.此时单文档菜单项与对话框联接完成。121.求阶层按钮的代码使用MFC进行程序设计时,如输出结果是单值,可用以下代码作为模板:voidCdlg_jc::OnOK(){//TODO:AddextravalidationhereUpdateData(TRUE);//更新控件值doublei,jsz=1.0;for(i=1;i=m_srs;i++)jsz*=i;//求阶乘m_jsz.Format(%f,jsz);//将双精度型转换为字符,f对应浮点数//其中m_jsz为输出编辑框的成员变量名UpdateData(FALSE);//控件值更新编辑框显示//CDialog::OnOK();}13//续上for(i=a;i=b;i++){for(j=2;ji;j++)if(i!=j&&i%j==0)break;if(i==j){n++;s.Format(%d,i);//将整形转换为字符if(n%15==0){x=70;y=y+20;//x,y表示坐标值pDC-TextOut(x,y,s);//在指定位置输出文本}else{pDC-TextOut(x,y,s);//在指定位置输出文本x=x+30;}}}}}2.求素数按钮的代码voidCdlg_zss::OnOK(){//TODO:AddextravalidationhereUpdateData(TRUE);//更新控件值CDC*pDC=GetDC();//获取视图初始的客户区DC//DC表示设备环境inta=m_szqz;intb=m_szzz;inti,j,n=0;intx=70,y=220;CStrings;if(b=100)//控制只求100内的素{使用MFC进行程序设计时,如输出结果是多值,可用以下代码作为模板:14注:CDC类有4个派生类CClientDC类只能在窗口的客户区(不包括边框、标题栏、菜单栏以及状态栏的空白区域)进行绘图。CMetaFileDC封装了在一个Windows图元文件中绘图的方法。CPaintDC只在处理WM_PAINT消息中使用,用户一旦获得相关的CDC指针,就可以将它当做任何设备环境(包括屏幕、打印机)的指针来使用。CWindowDC允许在窗口的任意位置中进行绘图,点(0,0)指整个窗口的左上角。在微软基类库MFC中,CDC类是定义设备上下文(DC,设备环境)对象的基类,所有绘图函数都在CDC基类中定义。153.单文档菜单项中画直线代码菜单项“画直线”按钮代码:voidCYs1View::OnHzx(){//TODO:Addyourcommandhandlercodehere//使用CClientDC类来画图,创建的是视图窗口的dc对象,作图只能在视图的客服区内作图Invalidate(true);//擦除窗口原有内容重新绘制UpdateWindow();//使窗口立即重绘CClientDCdc(this);//创建一个名为dc的视图窗口的dc对象,this指向当前的对话框CPenpen;//设置画笔//创建一支5号粗细画实线的绿色画笔,pen.CreatePen(PS_SOLID,5,RGB(0,255,0));//选用新画笔CPen*oldpen=dc.SelectObject(&pen);dc.MoveTo(500,100);//线段的起点dc.LineTo(300,500);//线段的终点}//RGB(红,绿,蓝)或用CDC类绘图voidCYs1View::OnHzx(){//Invalidate(true);//刷新屏幕CDC*pDC=GetDC();pDC-MoveTo(100,100);pDC-LineTo(300,500);}164.单文档菜单项中画矩形代码菜单项“画矩形”按钮代码:voidCWxling_28View::OnHjx(){//TODO:AddyourcommandhandlercodehereCClientDCdc(this);CPenpen;//定义画笔//创建红色3号粗细实线画笔pen.CreatePen(PS_SOLID,3,RGB(255,0,0));CPen*oldpen=dc.SelectObject(&pen);CBrushbrush;//定义画刷//创建绿色画刷brush.CreateHatchBrush(HS_CROSS,RGB(0,255,0));dc.SelectObject(&brush);dc.Rectangle(300,300,400,500);//画矩形}175.单文档菜单项中画椭圆代码菜单项“画椭圆”按钮代码:voidCWxling_28View::OnHty(){//TODO:AddyourcommandhandlercodehereCClientDCdc(this);CPenpen;//设置画笔pen.CreatePen(PS_SOLID,3,RGB(0,255,0));CPen*oldpen=dc.SelectObject(&pen);dc.Ellipse(300,100,600,300);//画椭圆}/*(intx1,inty1,intx2,inty2)(x1,y1)和(x2,y2)表示所画椭圆外切矩形的左上角和右下角坐标*/186.单文档菜单项中画sin曲线代码在//Wxl_30View.cpp中加入头文件:#includemath.h“菜单项“画sin曲线”按钮代码:voidCWxl_30View::OnSin(){//TODO:Addyourcommandhandle
本文标题:C++课程设计MFC_2015
链接地址:https://www.777doc.com/doc-2901871 .html