您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > CHP6 MFC应用程序框架(东软mfc培训)
MFC应用程序框架隋秀凤suixf@neusoft.com东软IT人才实训中心3Sept.2008ConfidentialCopyright2008ByNeusoftGroup.Allrightsreserved3Sept.2008Confidential目的与目标学时:2学时教学方法:讲授ppt+上机练习+点评•通过本课的学习,学员应该掌握如下知识:•1.掌握MFC应用程序框架。•2.掌握MFC框架相关的类。3Sept.2008Confidential“Hello”应用程序框架CCmdTargetCWinThreadCWinAppCWndCFrameWndCObject主要负责初始化、运行和结束应用程序的执行负责管理操作数据及负责管理操作数据及显示,并接收用户的显示,并接收用户的输入。输入。3Sept.2008Confidential应用程序框架思想•主要思想:将原CFrameWnd派生类的任务分配给文档类(CDocument)和视窗类(CView)。文档类主要负责管理数据;视窗类主要负责显示文档内容,接收用户的输入。3Sept.2008ConfidentialAppwizard,ClassWizard和资源编辑器•AppWizard:创建MFC应用程序•ClassWizard:–创建Windows消息和命令的处理函数–创建类成员变量–创建和管理类•资源编辑器:创建并编辑菜单、对话框、定制控制框、加速键、位图、图标、光标、字符串和版本等资源3Sept.2008Confidential编写程序的基本步骤•利用AppWizard创建应用程序框架•若需要增加类成员,利用ClassWizard添加•若需要重载成员函数,利用ClassWizard添加相应的消息映射关系,并填写函数体•若需要定义类,利用ClassWizard进行定义3Sept.2008ConfidentialSDIApp项目实例•对SDIApp项目名称为My产生的类为:类名称基类类声明于类定义于CMyAppCWinAppMy.hMy.cppCMainFrameCFrameWndMainfrm.hMainfrm.cppCMyDocCDocumentmyDoc.hmyDoc.cppCMyViewCViewMyview.hMyview.cpp3Sept.2008ConfidentialMDIApp项目实例•对MDIApp项目名称为My产生的类为:类名称基类类声明于类定义于CMyAppCWinAppMy.hMy.cppCMainFrameCMDIFrameWndMainfrm.hMainfrm.cppCChildFrameCMDIChildWndChildfrm.hChildfrm.cppCMyDocCDocumentmyDoc.hmyDoc.cppCMyViewCviewMyview.hMyview.cpp3Sept.2008Confidential应用程序中的对象ApplicationObjectDocumentTemplateDocumentToolbarStatusBarViewCFrameWnd3Sept.2008Confidential视窗类CObjectCCmdTargetCWndCViewCScrollViewCFormViewCEditViewCRecordView3Sept.2008Confidential应用程序框架涉及的主要类•文档类(CDocument)–管理程序操作的数据•视窗(CView)–显示数据并接收用户的输入和编辑信息•边框窗口(CFrameWnd)–管理视窗3Sept.2008Confidential应用程序框架涉及的主要类•文档模板(CSingleDocTemplate、CMultiDocTemplate)–负责协调文档、视窗和边框窗口的工作。通常,一种特定的文档模板创建并管理已打开的同种类型的所有文档•应用程序类(CWinApp)–控制应用程序的开始运行、初始化和结束3Sept.2008Confidential文档类成员函数•文档与视窗关系的建立AddView(视窗对象);•从文档类获得视窗对象pos=FirstViewPosition();CView*GetNextView(pos);•更新所有视窗对象UpdateAllViews(当前视窗);3Sept.2008Confidential文档类成员函数•响应File菜单命令OnNewDocument();DeleteContent();OnOpenDocument();OnFileSave();OnSaveDocument();OnFileSaveAs();3Sept.2008Confidential视窗类的成员函数•继承窗口基类属性、API成员函数、消息响应函数•获得相应的文档对象CDocment*GetDocument();•视窗初始化:InitUpdate();•视窗更新响应:OnUpdate();•窗口重画:OnDraw(CDC*pDC);3Sept.2008Confidential视窗类的功能3Sept.2008ConfidentialOnDraw成员函数•每次当视窗需要被重新绘制时,应用程序框架就要调用OnDraw函数。•驱使程序调用OnDraw的两个途径:–用户改变窗口的尺寸;窗口恢复先前被遮盖的部分;应用程序改变了窗口数据;–程序中调用Invalidate(或者InvalidateRect),通知Windows调用OnDraw函数3Sept.2008Confidential应用程序框架实例•例1:实现移动的小球。•例2:例1扩展功能,小球碰到边界自动反弹•例3:例2的扩展,当小球下落时,用一个小的挡板挡住小球,使它不落下去。3Sept.2008ConfidentialCopyright©2008版权所有东软集团
本文标题:CHP6 MFC应用程序框架(东软mfc培训)
链接地址:https://www.777doc.com/doc-3881440 .html