C++课程设计MFC省公共课一等奖全国赛课获奖课件.pptx
《C++课程设计MFC省公共课一等奖全国赛课获奖课件.pptx》由会员分享,可在线阅读,更多相关《C++课程设计MFC省公共课一等奖全国赛课获奖课件.pptx(148页珍藏版)》请在咨信网上搜索。
1、C+课程设计课程设计内容及要求内容及要求1第1页主要内容主要内容1.1.课程设计基本要求课程设计基本要求2.2.Windows Windows 编程基础编程基础3.3.什么是什么是C+MFCC+MFC4.4.什么是什么是MFCMFC编程编程5.5.MFCMFC应用程序开发流程应用程序开发流程6.单文档【ClassView】面板7.7.登录对话框与单文档视图联接登录对话框与单文档视图联接8.8.单文档中菜单项与对话框联接单文档中菜单项与对话框联接9.9.实例介绍实例介绍2第2页一、课程设计基本要求一、课程设计基本要求自学自学MFC(2MFC(2课时课时)知识扩充知识扩充C+C+:了解并掌握:了解
2、并掌握MFCMFC程序结构、消息映射机制、程序结构、消息映射机制、MFCMFC类库类库中惯用类(对话框、各种惯用控件)。中惯用类(对话框、各种惯用控件)。软件开发基本知识软件开发基本知识结合设计任务清楚软件开发基本流程、各个阶段目标和主要工结合设计任务清楚软件开发基本流程、各个阶段目标和主要工作。作。上机调试程序(上机调试程序(3030课时)课时)其它(其它(1414课时)课时)程序调试基本方法和论文撰写要求(程序调试基本方法和论文撰写要求(2 2课时)课时)掌握调试程序方法与技巧。掌握调试程序方法与技巧。清楚论文组织结构、格式编排等相关知识清楚论文组织结构、格式编排等相关知识学生资料查阅与自
3、主学习(学生资料查阅与自主学习(2 2课时)课时)代码编写(代码编写(1010课时)课时)3第3页二、二、Windows 编程基础编程基础Windows Windows 编程编程就是基于就是基于Windows Windows 应用程序。应用程序。2 2种主要种主要WindowsWindows应用程序应用程序基于基于对话框对话框应用程序应用程序基于基于文档文档/视图视图结构应用程序结构应用程序主要特点主要特点含有标准图形用户界面含有标准图形用户界面含有与硬件无关特征含有与硬件无关特征采取采取“消息传递,事件驱动消息传递,事件驱动”运行机制,即依据运行机制,即依据WindowsWindows发发送
4、消息来处理用户输入送消息来处理用户输入编写编写WindowsWindows应用程序主要方法(应用程序主要方法(2 2种)种)使用使用WindowsWindows提供应用程序提供应用程序接口(接口(APIAPI)函数)函数使用使用MicrosoftMicrosoft提供微软提供微软基础类基础类(MFC)(MFC)4第4页三、什么是三、什么是C+MFCMFC(Microsoft Foundation Class LibraryMFC(Microsoft Foundation Class Library,基础类库,基础类库)是微软提供用来编写是微软提供用来编写WindowsWindows应用程序应用
5、程序C+C+类库类库;封装了封装了APIAPI(WindowsWindows接口函数)接口函数),是是Win APIWin API与与C+C+结合。结合。MFCMFC大约有大约有200200多个类,封装了多个类,封装了WindowsWindows大部分编程对象以及与大部分编程对象以及与它们相关操作。即它由几百个执行文件和源代码文件组成。它们相关操作。即它由几百个执行文件和源代码文件组成。注意注意C+C+和和VC+VC+区分区分C+C+是是一个程序设计语言一个程序设计语言,是一个大家都认可软件编制通用规范,是一个大家都认可软件编制通用规范,即即C+C+是一套语法规则名字,类似汉语,英语。是一套语
6、法规则名字,类似汉语,英语。VC+VC+是一个软件是一个软件IDEIDE(编译、编辑、调试编译、编辑、调试 )集成开发环境)集成开发环境 MFC MFC是一个非外挂式是一个非外挂式软件包软件包,类库类库,MFC,MFC类是微软为类是微软为VC+VC+专配。专配。5第5页四、什么是四、什么是MFC编程编程MFCMFC编程编程指就是使用指就是使用VC+VC+进行开发,而且是在使用进行开发,而且是在使用VC+VC+提供提供各种向导情况下各种向导情况下MFCMFC编程。编程。在在VC+VC+中能够创建中能够创建3 3类类经典经典WindowsWindows应用程序应用程序基于对话框应用程序基于对话框应
7、用程序单文档界面(单文档界面(SDISDI)应用程序)应用程序多文档界面(多文档界面(MDIMDI)应用程序)应用程序文档文档/视图视图u文档对象:文档对象:u用来保留数据。用来保留数据。u视图对象:视图对象:u用来显示和编辑数用来显示和编辑数据。据。6第6页五、五、MFC应用程序开发流程应用程序开发流程应用程序编程基本步骤:应用程序编程基本步骤:(1 1)依据应用程序特征在)依据应用程序特征在MFC AppWizardexeMFC AppWizardexe应用程应用程序中序中选择适当应用程序框架选择适当应用程序框架。(2 2)利用)利用资源编辑器编辑资源资源编辑器编辑资源,如菜单等。,如菜单
8、等。(3 3)利用类向导()利用类向导(ClassWizardClassWizard)或手工)或手工添加类添加类、组员组员变量、组员函数变量、组员函数申明。申明。(4 4)编写详细)编写详细组员函数代码组员函数代码。(5 5)编译、链接程序)编译、链接程序检验程序中是否存在语法错误。检验程序中是否存在语法错误。(6 6)调试应用程序。)调试应用程序。7第7页六、单文档【ClassView】面板CAboutDlg(CAboutDlg(关于对话框类关于对话框类)管理关于对话框。管理关于对话框。CFrameWndCFrameWnd(框架窗口类)框架窗口类)CWxling_27AppCWxling_2
9、7App(应用程序类)(应用程序类)用来处理消息。用来处理消息。CWxling_27Doc CWxling_27Doc(文档类)(文档类)MFCMFC中数据是存放在类文档中。中数据是存放在类文档中。文档类负责管理和维护数据本身。文档类负责管理和维护数据本身。CWxling_27ViewCWxling_27View(视图类)(视图类)结果显示是在视图类中。结果显示是在视图类中。视图类负责处理用户鼠标和键盘操作。视图类负责处理用户鼠标和键盘操作。8第8页七、登录对话框与单文档视图联接七、登录对话框与单文档视图联接1.1.新建单文档工程:新建单文档工程:TEXTTEXT(注意此名由设计者自己任取);
10、(注意此名由设计者自己任取);2.2.在在ResourceViewResourceView,单击单击Insert DialogInsert Dialog,插入一对话框,插入一对话框IDD_DIALOG1IDD_DIALOG1(默认(默认IDID号);号);3.3.右键选中新建对话框,利用类向导建立一个新类右键选中新建对话框,利用类向导建立一个新类Create a new classCreate a new class,名,名称为:称为:C Cdlg_logindlg_login ;4.4.在在MainFrm.cppMainFrm.cpp文件前面,语句文件前面,语句#include“MainFr
11、m.h”#include“MainFrm.h”后面后面添加新类头文添加新类头文件:件:#include dlg_login.h#include dlg_login.h 5.5.在在FileViewFileView中点击中点击source filessource files,双击,双击MainFrm.cppMainFrm.cpp。找到:。找到:CMainFrame:OnCreate(LPCREATESTRUCT lpCreateStruct)CMainFrame:OnCreate(LPCREATESTRUCT lpCreateStruct),这是窗体框架创建函数。在该函数后面(在这是窗体框架创建
12、函数。在该函数后面(在return 0;return 0;前面)加入语句(注意大小写):前面)加入语句(注意大小写):Cdlg_login dlg;Cdlg_login dlg;/定义一个登录对话框对象定义一个登录对话框对象dlgdlgdlg.DoModal();dlg.DoModal();/让对话框对象以有模式形式显示出来让对话框对象以有模式形式显示出来6.6.此时对话框与单文档联接完成。此时对话框与单文档联接完成。7.7.下载下载“格式工厂格式工厂3.011”3.011”将自己照片转换成将自己照片转换成BMPBMP格式,经过插入格式,经过插入BitmapBitmap命命令,将照片引入至资源
13、中,并添加至对话框中。令,将照片引入至资源中,并添加至对话框中。9第9页七续、登录对话框退出按钮代码七续、登录对话框退出按钮代码/确定按钮确定按钮void CDlg_login:OnOK()void CDlg_login:OnOK()/TODO:Add extra validation/TODO:Add extra validation hereherethis-UpdateData(true);this-UpdateData(true);if(this-m_name=wxl&if(this-m_name=wxl&this-m_paw=1234)this-m_paw=1234)CDialog:
14、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 extra cleanup herehereExitProcess(0);ExitProcess(0);/退出退出 10第10页八、单文档中菜单项
15、与对话框联接八、单文档中菜单项与对话框联接1.1.新建单文档工程:新建单文档工程:Ys1Ys1(注意此名由设计者自己任取);(注意此名由设计者自己任取);2.2.在在ResourceViewResourceView,单击单击Insert DialogInsert Dialog,插入一对话框,插入一对话框IDD_DIALOG1IDD_DIALOG1(默认(默认IDID号)号);3.3.右键选中新建对话框,利用类向导建立一个新类右键选中新建对话框,利用类向导建立一个新类Create a new classCreate a new class,名称为:,名称为:C Cdlg_jc(dlg_jc(自己
16、命名自己命名),如右图,如右图1 1所表示所表示;4.4.在在/Ys1View.cpp:/Ys1View.cpp:文件中语句文件中语句#include Ys1View.h#include Ys1View.h后面后面添加新类头文件:添加新类头文件:#include dlg_jc.h#include dlg_jc.h 5.5.编辑主菜单如图编辑主菜单如图2 2所表示:所表示:6.6.在主菜下经过在主菜下经过“建立类向导建立类向导”命令,命令,从从“Class name”“Class name”组合框中选择组合框中选择CYs1ViewCYs1View,如如图图3,43,4所表示,并在函数所表示,并在
17、函数OnJc()OnJc()编写代码以下:编写代码以下:void CYs1View:OnJc()void CYs1View:OnJc()/TODO:Add your command handler code here/TODO:Add your command handler code here C Cdlg_jcdlg_jc jc;jc;/定义一个求阶层对话框对象定义一个求阶层对话框对象jcjcjc.DoModal();jc.DoModal();/让对话框对象以有模式形式显示出来让对话框对象以有模式形式显示出来 7.7.此时单文档菜单项与对话框联接完成。此时单文档菜单项与对话框联接完成。11
18、第11页1.求阶层按钮代码求阶层按钮代码使用使用MFCMFC进行程序设计时进行程序设计时,如输出结果是如输出结果是单值单值,可用以下代码作为模板可用以下代码作为模板:void Cdlg_jc:OnOK()void Cdlg_jc:OnOK()/TODO:Add extra validation here/TODO:Add extra validation hereUpdateData(TRUE);UpdateData(TRUE);/更新控件值更新控件值 double i,jsz=1.0;double i,jsz=1.0;for(i=1;i=m_srs;i+)for(i=1;i=m_srs;i+
19、)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第12页/续上续上for(i=a;i=b;i+)for(i=a;i=b;i+)for(j=2;ji;j+)for(j=2;jTextOut(
20、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 validation hereUpdateData(TRUE);UpdateData(TRUE);/更新控件更新控件值值 CDC*pDC=G
21、etDC();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,100);pDC-LineTo(300,500);pDC-LineTo(300,500);15第15页4.单文档菜单项中画矩形代码
22、单文档菜单项中画矩形代码菜单项菜单项“画矩形画矩形”按钮代码:按钮代码: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;/定义画笔定义画笔/创建红色创建红色3 3号粗细实线画笔号粗细实线画笔pen.CreatePen(PS_SOLID,3,RGB(pen.Create
23、Pen(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);,0);dc.SelectObject(&brush);dc.SelectObject(&brush);dc.Rectan
24、gle(dc.Rectangle(300,300,400,500);300,300,400,500);/画矩形画矩形 16第16页5.单文档菜单项中画椭圆代码单文档菜单项中画椭圆代码菜单项菜单项“画椭圆画椭圆”按钮代码:按钮代码:void CWxling_28View:OnHty()void CWxling_28View:OnHty()/TODO:Add your command handler code here/TODO:Add your command handler code hereCClientDC dc(this);CClientDC dc(this);CPen pen;CPen
25、 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 x2,int y2)/*(int x1,int y1,int x2,int y2)(x1,y1)(x1,y1)和和(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 MFC 公共课 一等奖 全国 获奖 课件
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。