C++课程设计MFC.ppt
《C++课程设计MFC.ppt》由会员分享,可在线阅读,更多相关《C++课程设计MFC.ppt(148页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C+课程设计课程设计内容及要求内容及要求1主要内容主要内容1.1.课程设计基本要求课程设计基本要求2.2.Windows Windows 编程基础编程基础3.3.什么是什么是C+C+的的MFCMFC4.4.什么是什么是MFCMFC编程编程5.5.MFCMFC应用程序的开发流程应用程序的开发流程6.单文档【ClassView】面板7.7.登录对话框与单文档视图联接登录对话框与单文档视图联接8.8.单文档中菜单项与对话框联接单文档中菜单项与对话框联接9.9.实例介绍实例介绍2一、课程设计基本要求一、课程设计基本要求自学自学MFC(2MFC(2学时学时)知识扩充知识扩充C+C+:了解并掌握:了解并掌
2、握MFCMFC程序结构、消息映射机制、程序结构、消息映射机制、MFCMFC类库类库中的常用类(对话框、各种常用控件)。中的常用类(对话框、各种常用控件)。软件开发的基本知识软件开发的基本知识结合设计任务清楚软件开发的基本流程、各个阶段的目标和主结合设计任务清楚软件开发的基本流程、各个阶段的目标和主要工作。要工作。上机调试程序(上机调试程序(3030学时)学时)其他(其他(1414学时)学时)程序调试的基本方法和论文撰写要求(程序调试的基本方法和论文撰写要求(2 2学时)学时)掌握调试程序的方法与技巧。掌握调试程序的方法与技巧。清楚论文组织结构、格式编排等相关知识清楚论文组织结构、格式编排等相关
3、知识学生资料查阅与自主学习(学生资料查阅与自主学习(2 2学时)学时)代码编写(代码编写(1010学时)学时)3二、二、Windows 编程基础编程基础Windows Windows 编程编程就是基于就是基于Windows Windows 的应用程序。的应用程序。2 2种重要的种重要的WindowsWindows应用程序应用程序基于基于对话框对话框的应用程序的应用程序基于基于文档文档/视图视图结构的应用程序结构的应用程序主要特点主要特点具有标准的图形用户界面具有标准的图形用户界面具有与硬件无关的特性具有与硬件无关的特性采用采用“消息传递,事件驱动消息传递,事件驱动”的运行机制,即根据的运行机制
4、,即根据WindowsWindows发送的消息来处理用户的输入发送的消息来处理用户的输入编写编写WindowsWindows应用程序的主要方法(应用程序的主要方法(2 2种)种)使用使用WindowsWindows提供的应用程序提供的应用程序接口(接口(APIAPI)函数)函数使用使用MicrosoftMicrosoft提供的微软提供的微软基础类基础类(MFC)(MFC)4三、什么是三、什么是C+的的MFCMFC(Microsoft Foundation Class LibraryMFC(Microsoft Foundation Class Library,基础类库,基础类库)是微软提供的用来
5、编写是微软提供的用来编写WindowsWindows应用程序的应用程序的C+C+类库类库;封装了封装了APIAPI(WindowsWindows的接口函数)的接口函数),是是Win APIWin API与与C+C+的结合。的结合。MFCMFC大约有大约有200200多个类,封装了多个类,封装了WindowsWindows的大部分编程对象以及的大部分编程对象以及与它们有关的操作。即它由几百个执行文件和源代码文件组成。与它们有关的操作。即它由几百个执行文件和源代码文件组成。注意注意C+C+和和VC+VC+的区别的区别C+C+是是一种程序设计语言一种程序设计语言,是一种大家都承认的软件编制的通用规是
6、一种大家都承认的软件编制的通用规范,即范,即C+C+是一套语法规则的名字,类似汉语,英语。是一套语法规则的名字,类似汉语,英语。VC+VC+是一个软件是一个软件IDEIDE(编译、编辑、调试编译、编辑、调试 )集成开发环境)集成开发环境 MFC MFC是一个非外挂式的是一个非外挂式的软件包软件包,类库类库,MFC,MFC类是微软为类是微软为VC+VC+专配专配的。的。5四、什么是四、什么是MFC编程编程MFCMFC编程编程指的就是使用指的就是使用VC+VC+进行开发,并且是在使用进行开发,并且是在使用VC+VC+提提供的各种向导的情况下的供的各种向导的情况下的MFCMFC编程。编程。在在VC+
7、VC+中可以创建中可以创建3 3类类典型的典型的WindowsWindows应用程序应用程序基于对话框的应用程序基于对话框的应用程序单文档界面(单文档界面(SDISDI)应用程序)应用程序多文档界面(多文档界面(MDIMDI)应用程序)应用程序文档文档/视图视图u文档对象:文档对象:u用来保存数据。用来保存数据。u视图对象:视图对象:u用来显示和编辑数用来显示和编辑数据。据。6五、五、MFC应用程序的开发流程应用程序的开发流程应用程序编程的基本步骤:应用程序编程的基本步骤:(1 1)根据应用程序的特性在)根据应用程序的特性在MFC AppWizardexeMFC AppWizardexe应用应
8、用程序中程序中选择合适的应用程序框架选择合适的应用程序框架。(2 2)利用)利用资源编辑器编辑资源资源编辑器编辑资源,如菜单等。,如菜单等。(3 3)利用类向导()利用类向导(ClassWizardClassWizard)或手工)或手工添加类添加类、成员成员变量、成员函数变量、成员函数声明。声明。(4 4)编写具体的)编写具体的成员函数代码成员函数代码。(5 5)编译、链接程序)编译、链接程序检查程序中是否存在语法错误。检查程序中是否存在语法错误。(6 6)调试应用程序。)调试应用程序。7六、单文档【ClassView】面板CAboutDlg(CAboutDlg(关于对话框类关于对话框类)管理
9、关于对话框。管理关于对话框。CFrameWndCFrameWnd(框架窗口类)框架窗口类)CWxling_27AppCWxling_27App(应用程序类)(应用程序类)用来处理消息。用来处理消息。CWxling_27Doc CWxling_27Doc(文档类)(文档类)MFCMFC中的数据是存储在类文档中。中的数据是存储在类文档中。文档类负责管理和维护数据本身。文档类负责管理和维护数据本身。CWxling_27ViewCWxling_27View(视图类)(视图类)结果的显示是在视图类中。结果的显示是在视图类中。视图类负责处理用户鼠标和键盘的操作。视图类负责处理用户鼠标和键盘的操作。8七、登
10、录对话框与单文档视图联接七、登录对话框与单文档视图联接1.1.新建单文档工程:新建单文档工程:TEXTTEXT(注意此名由设计者自己任取);(注意此名由设计者自己任取);2.2.在在ResourceViewResourceView,单击单击Insert DialogInsert Dialog,插入一对话框,插入一对话框IDD_DIALOG1IDD_DIALOG1(默认(默认IDID号);号);3.3.右键选中新建的对话框,利用类向导建立一个新类右键选中新建的对话框,利用类向导建立一个新类Create a new classCreate a new class,名称为:名称为:C Cdlg_lo
11、gindlg_login ;4.4.在在MainFrm.cppMainFrm.cpp文件的前面,语句文件的前面,语句#include“#include“MainFrm.hMainFrm.h”的后面的后面添加新类添加新类的头文件:的头文件:#include#include dlg_login.hdlg_login.h 5.5.在在FileViewFileView中点击中点击source filessource files,双击,双击MainFrm.cppMainFrm.cpp。找到:。找到:CMainFrame:OnCreate(LPCREATESTRUCTCMainFrame:OnCreate
12、(LPCREATESTRUCT lpCreateStructlpCreateStruct),这是窗体框架创建函数。在该函数的后面(在这是窗体框架创建函数。在该函数的后面(在return 0;return 0;的前面)加入语句(注意大的前面)加入语句(注意大小写):小写):Cdlg_loginCdlg_login dlgdlg;/定义一个登录对话框对象定义一个登录对话框对象dlgdlgdlg.DoModaldlg.DoModal();();/让对话框对象以有模式形式显示出来让对话框对象以有模式形式显示出来6.6.此时对话框与单文档联接完成。此时对话框与单文档联接完成。7.7.下载下载“格式工厂格
13、式工厂3.011”3.011”将自己的照片转换成将自己的照片转换成BMPBMP格式,通过插入格式,通过插入BitmapBitmap命令,将照片引入至资源中,并添加至对话框中。命令,将照片引入至资源中,并添加至对话框中。9七续、登录对话框退出按钮代码七续、登录对话框退出按钮代码/确定按钮确定按钮void CDlg_login:OnOK()void CDlg_login:OnOK()/TODO:Add extra validation/TODO:Add extra validation hereherethis-UpdateData(true);this-UpdateData(true);if(t
14、his-m_name=wxl&if(this-m_name=wxl&this-m_paw=1234)this-m_paw=1234)CDialog:OnOK();CDialog:OnOK();elseelse MessageBox(MessageBox(登录有误登录有误););ExitProcess(0);/ExitProcess(0);/退出退出/CDialog:OnOK();/CDialog:OnOK();/取消按钮取消按钮void CDlg_login:OnCancel()void CDlg_login:OnCancel()/TODO:Add extra cleanup/TODO:Add
15、 extra cleanup herehereExitProcess(0);ExitProcess(0);/退出退出 10八、单文档中菜单项与对话框联接八、单文档中菜单项与对话框联接1.1.新建单文档工程:新建单文档工程:Ys1Ys1(注意此名由设计者自己任取);(注意此名由设计者自己任取);2.2.在在ResourceViewResourceView,单击单击Insert DialogInsert Dialog,插入一对话框,插入一对话框IDD_DIALOG1IDD_DIALOG1(默认(默认IDID号)号);3.3.右键选中新建的对话框,利用类向导建立一个新类右键选中新建的对话框,利用类向
16、导建立一个新类Create a new classCreate a new class,名称为:,名称为:C Cdlg_jcdlg_jc(自己命名自己命名),如右图,如右图1 1所示所示;4.4.在在/Ys1View.cpp:/Ys1View.cpp:文件中语句文件中语句#include Ys1View.h#include Ys1View.h的后面的后面添加新类的头文件:添加新类的头文件:#include#include dlg_jc.hdlg_jc.h 5.5.编辑主菜单如图编辑主菜单如图2 2所示:所示:6.6.在主菜下通过在主菜下通过“建立类向导建立类向导”命令,命令,从从“Class
17、name”Class name”组合框中选择组合框中选择CYs1ViewCYs1View,如如图图3,43,4所示,并在函数所示,并在函数OnJcOnJc()()编写代码如下:编写代码如下:void CYs1View:OnJc()void CYs1View:OnJc()/TODO:Add your command handler code here/TODO:Add your command handler code here C Cdlg_jcdlg_jc jcjc;/定义一个求阶层对话框对象定义一个求阶层对话框对象jcjcjc.DoModaljc.DoModal();();/让对话框对象以
18、有模式形式显示出来让对话框对象以有模式形式显示出来 7.7.此时单文档菜单项与对话框联接完成。此时单文档菜单项与对话框联接完成。111.求阶层按钮的代码求阶层按钮的代码使用使用MFCMFC进行程序设计时进行程序设计时,如输出结果是如输出结果是单值单值,可用以下代码作为模板可用以下代码作为模板:void Cdlg_jc:OnOK()void Cdlg_jc:OnOK()/TODO:Add extra validation here/TODO:Add extra validation hereUpdateData(TRUE);UpdateData(TRUE);/更新控件值更新控件值 double
19、i,jsz=1.0;double i,jsz=1.0;for(i=1;i=m_srs;i+)for(i=1;i=m_srs;i+)jsz*=i;jsz*=i;/求阶乘求阶乘 m_jsz.Format(%f,jsz);m_jsz.Format(%f,jsz);/将双精度型转换为字符,将双精度型转换为字符,f f 对应浮点数对应浮点数/其中其中m_jszm_jsz为输出编辑框的成员变量名为输出编辑框的成员变量名UpdateData(FALSE);UpdateData(FALSE);/控件值更新编辑框显示控件值更新编辑框显示/CDialog:OnOK();/CDialog:OnOK();12/续上续
20、上for(i=a;i=b;i+)for(i=a;i=b;i+)for(j=2;ji;j+)for(j=2;jTextOut(x,y,s);pDC-TextOut(x,y,s);/在指定位置输出文本在指定位置输出文本 else else pDC-TextOut(x,y,s);pDC-TextOut(x,y,s);/在指定位置输出文本在指定位置输出文本x=x+30;x=x+30;2.求素数按钮的代码求素数按钮的代码void Cdlg_zss:OnOK()void Cdlg_zss:OnOK()/TODO:Add extra validation here/TODO:Add extra valida
21、tion hereUpdateData(TRUE);UpdateData(TRUE);/更新控件更新控件值值 CDC*pDC=GetDC();CDC*pDC=GetDC();/获取视图初始的客户区获取视图初始的客户区DCDC/DC/DC表示设备环境表示设备环境 int a=m_szqz;int a=m_szqz;int b=m_szzz;int b=m_szzz;int i,j,n=0;int i,j,n=0;int x=70,y=220;int x=70,y=220;CString s;CString s;if(b=100)if(bMoveTo(100,100);pDC-MoveTo(100
22、,100);pDC-LineTo(300,500);pDC-LineTo(300,500);154.单文档菜单项中画矩形代码单文档菜单项中画矩形代码菜单项菜单项“画矩形画矩形”按钮代码:按钮代码:void CWxling_28View:OnHjx()void CWxling_28View:OnHjx()/TODO:Add your command handler code here/TODO:Add your command handler code hereCClientDC dc(this);CClientDC dc(this);CPen pen;CPen pen;/定义画笔定义画笔/创建
23、红色创建红色3 3号粗细实线画笔号粗细实线画笔pen.CreatePen(PS_SOLID,3,RGB(pen.CreatePen(PS_SOLID,3,RGB(255255,0,0);,0,0);CPen*oldpen=dc.SelectObject(&pen);CPen*oldpen=dc.SelectObject(&pen);CBrush brush;CBrush brush;/定义画刷定义画刷/创建绿色画刷创建绿色画刷brush.CreateHatchBrush(HS_CROSS,RGB(0,brush.CreateHatchBrush(HS_CROSS,RGB(0,255255,0)
24、;,0);dc.SelectObject(&brush);dc.SelectObject(&brush);dc.Rectangle(dc.Rectangle(300,300,400,500);300,300,400,500);/画矩形画矩形 165.单文档菜单项中画椭圆代码单文档菜单项中画椭圆代码菜单项菜单项“画椭圆画椭圆”按钮代码:按钮代码:void CWxling_28View:OnHty()void CWxling_28View:OnHty()/TODO:Add your command handler code here/TODO:Add your command handler co
25、de hereCClientDC dc(this);CClientDC dc(this);CPen pen;CPen pen;/设置画笔设置画笔pen.CreatePen(PS_SOLID,3,RGB(0,255,0);pen.CreatePen(PS_SOLID,3,RGB(0,255,0);CPen*oldpen=dc.SelectObject(&pen);CPen*oldpen=dc.SelectObject(&pen);dc.Ellipse(300,100,600,300);dc.Ellipse(300,100,600,300);/画椭圆画椭圆/*(int x1,int y1,int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 MFC
限制150内