- 1、本文档共66页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章、MFC框架
第16章 SDI MDI VC++面向对象与可视化程序设计 一、三种典型的VC++应用程序 我们在使用AppWizard开始一个项目时,可以根据需要选择三种类型的应用界面: Single Document Multiple Documents Dialog Based 1、单文档界面与多文档界面 文档/视图 基础知识 MFC 2.0以后,应用程序的体系结构发生了变化,应用程序中引入了文档/视图结构。 文档(Document)其实就是数据,可以用data set或data source来表示它的意义。 视图就是数据的呈现方式。 在文档/视图应用程序中,应用程序的数据由文档对象代表,而数据的视图(呈现)由视图对象代表。文档和视图合作来完成处理用户的输入并绘制结果数据的文字或图形表示。 文档/视图 基础知识 MFC的文档类CDocument是文档对象的基类,CView是视图对象的基类。 MFC支持两种类型的文档/视图应用程序。即单文档界面(SDI)应用程序和多文档界面(MDI)应用程序。 框架窗口 框架窗口:框架窗口是应用程序的顶层窗口,通常是WS_OVERLAPPEDWINDOW样式的窗口,带有可缩放边框,标题栏、系统菜单以及最小化、最大化和关闭按钮。 框架窗口(对象)作用: 在屏幕上定义了应用程序的实际工作空间 担当视图的容器。 框架窗口 SDI应用程序只有一个框架窗口CFrameWnd,它被用作应用程序的顶层窗口并来包含视图。 MDI应用程序使用两种不同类型的框架窗口,其中CMDIFrameWnd用作顶层窗口,而CMDIChildWnd在顶层窗口中浮动用来包含应用程序文档的视图。 视图 窗口 视图是没有边框的子窗口,真正出现时,其外围有一个有边框的窗口,这个有边框的窗口就是“框架窗口(即SDI的CFrameWnd、MDI的CMDIChildWnd)”。框架窗口是视图的父窗口。 视图的大小与框架窗口相适应,在实际中作为框架窗口的客户区。 视图 窗口 应用程序的数据保存在文档对象中,数据 的可视表示保存在视图对象中。(如一个矩形) 视图对象的作用: 提供文档的可视化表示 将用户的输入(特别是鼠标和键盘消息)转换为操作文档数据的命令。 SDI文档/视图体系结构 文档模板 MFC把Document/view/Frame视为三位一体,每当使用者欲打开(或新建)一份文件,程序应该做出Document、View、Frame各一份,这个“三口组”成为一个运行单元,由Document Template掌管。MFC的有一个CDocTemplate负责此事。 MFC有两个派生类:CMultiDocTemplate和CSingleDocTemplate。 文档模板 文档模板与数据类型对应,如果你的程序能够处理两种数据类型,你必须制造两个文档模板出来,并使用AddDocTemplate函数将它们一一加入系统之中。 Document Template管理“三口组”,CWinApp管理Document Template。 通过InitInstance中的下列代码就可以看出这一点。 文档模板管理文档/视图/框架窗口 BOOL CDlgCtrlApp::InitInstance() { …… CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CDlgCtrlDoc), RUNTIME_CLASS(CMainFrame), RUNTIME_CLASS(CDlgCtrlView)); AddDocTemplate(pDocTemplate); …… } 文档模板、文档、视图和框架窗口的关系 CDocTemplate、CDocument、CView、CFrameWnd之间的关系可以整理如下: 1.CWinApp拥有一个对象指针:CDocManager *m_pDocManager。(通过查看CWinApp类的声明可以找到此指针) 2. CDocManager拥有一个指针链表CPtrList m_templateList,用来维护一系列的Document Template。一个程序若支持两“种”文件类型,就应该有两份Document Template 。 文档模板、文档、视图和框架窗口的关系 3.应用程序应该在CMyWinApp::InitInstance中以AddDocTemplate将这些文档模板加入到由CDocManager中所维护的链表中。 文档模板、文档、视图和框架窗口的关系 4. CDocTemplat
您可能关注的文档
- 第二节 增值税征税范围和纳税人.ppt
- 第二篇第三章 液态乳加工.ppt
- 第二节 大学生的择业与创业.ppt
- 第二章: 摄影器材.ppt
- 第二节 燃烧热 能源课件 高二化学课件教案 人教版.ppt
- 第二节 平面的加工 平面的主要技术要求有①几何形状精度,如平面度 .doc
- 第二节 稳压器.ppt
- 第二节 种子植物 生物课讲稿.ppt
- 第二节 PN结.ppt
- 第二节 山岳的形成 高中地理教学课件.ppt
- 第18讲 第17课 西晋的短暂统一和北方各族的内迁.docx
- 第15讲 第14课 沟通中外文明的“丝绸之路”.docx
- 第13课时 中东 欧洲西部.doc
- 第17讲 第16 课三国鼎立.docx
- 第17讲 第16课 三国鼎立 带解析.docx
- 2024_2025年新教材高中历史课时检测9近代西方的法律与教化含解析新人教版选择性必修1.doc
- 2024_2025学年高二数学下学期期末备考试卷文含解析.docx
- 山西版2024高考政治一轮复习第二单元生产劳动与经营第5课时企业与劳动者教案.docx
- 第16讲 第15课 两汉的科技和文化 带解析.docx
- 第13课 宋元时期的科技与中外交通.docx
最近下载
- Zkteco中控智慧万傲瑞达V6000_2.0.0用户手册(停车CS岗亭端).pdf
- 2023-2024学年江苏省淮安市清江浦区三校八年级(上)期中数学试卷.doc VIP
- 要拿我当一挺机关枪使用.docx
- 母婴三病培训.pptx VIP
- 管理信息系统题目_带答案.doc
- 《汽车侧面气囊和帘式气囊模块性能要求GBT+38795-2020》详细解读.pdf
- 初中班主任工作经验交流精美PPT课件.ppt VIP
- 探放水工考试卷及答案 .docx
- 【申论】公务员考试辅导·笔试系统讲义(2025国考版).docx
- 2023-2024学年江苏省淮安市盱眙县八年级(上)期中检测英语试卷(附答案详解).pdf VIP
文档评论(0)