第12讲 单文档与多文档.ppt

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11章 单文档与多文档 清华大学计算机与信息管理中心---黄维通 第12讲 单文档与多文档 要点: 1、介绍Visual C++中的文档/视图结构的工作机制 2、编写单文档应用程序 3、编写多文档应用程序 一、单文档与多文档 文档/视图结构 使用MFC向导创建SDI和MDI的程序框架时,构成了一个相互关联的结构,称为文档/视图结构。在这个框架中,数据的维护及其显示,分别由两个不同但又紧密相关的类——文档类和视图类负责。 视图、文档、框架窗口 视图负责显示和编辑文档数据。用户对数据的编辑需要依靠窗口上的鼠标与键盘操作才得以完成,这些消息都是由视图类接收后进行处理或通知文档类,如收到窗口刷新消息时调用视图类的成员函数OnDraw()显示文档内容。 文档负责数据的读写操作。数据通常被保存在文档类的成员变量中,文档类通过一个称为串行化的成员函数Serialize()将成员变量的数据保存到磁盘文件中。 框架窗口就是通常所说的Windows主窗口,视图是一个没有边框的窗口,必须依存在一个框架窗口内。 MFC文档/视图结构数据处理工作分工: 数据处理分为数据的管理和显示 文档用于管理和维护数据 视图用来显示和编辑数据 MFC通过其文档类和视图类提供了大量有关数据处理的方法。 SDI 程序 SDI程序只有一个视图。因此,对应一个文档。 SDI程序中框架窗口、文档和视图的创建是在应用程序对象的InitInstance()成员函数中通过文档模板类完成的: 下面程序:创建单文档模板 CSingleDocTemplate * pDocTemplate; //单文档模板类对象 pDocTemplate = new CSingleDocTemplate (IDR_MAINFRAME, RUNTIME_CLASS (CMyDoc), //文档类 RUNTIME_CLASS (CMainFrame), //框架窗口 RUNTIME_CLASS (CMyView) ); //视图类 ….. MDI 程序 MDI程序有多个子视图。因此,对应多个文档。 MDI程序中框架窗口、文档和视图的创建是在应用程序对象的InitInstance()成员函数中通过文档模板类完成的: 下面程序:创建多文档模板 CMultiDocTemplate* pDocTemplate; pDocTemplate = new CMultiDocTemplate( IDR_MYMDITYPE, RUNTIME_CLASS(CMyDoc), // 文档类 RUNTIME_CLASS(CChildFrame), // 框架窗口类 RUNTIME_CLASS(CMyView)); // 视图类 …… 如果是多种文档,可定义多个文档模板( pDocTemplate ) 二、Doc/View框架的主要成员 MFC的Doc/View框架的核心类只有五个: CWinApp: 应用类(主程序) CView:视图基类 CDocument:文档基类 CDocTemplate:文档模板类 CFrameWnd:框架窗口类 1 CWinApp 类 2 CDocument类 3 CView类 CWnd类是视图类(CView)的基类。视图类具有CWnd的所有功能如:创建、移动、显示和隐藏窗口等。CView类可以接收任何Windows消息,而CDocument类则不行 4 CDocTemplate类 文档模板类将原本独立的文档、视图和框架窗口对象联系在一起。 每一种文档类型都有一种文档模板与之相对应,文档模板负责创建和管理该文档类型的所有文档。 SDI程序中只有一个文档模板对象 MDI程序需要针对不同类型的文档定义不同的文档模板对象。 5 CFrameWnd类 CFrameWnd类是CMainFrame主框架窗口的基类,CWnd的子类。 框架窗口维护了很多幕后的工作,例如工具条、菜单、状态条的显示、更新,视图的位置和显示,其它可停靠空间的停靠和动态尺寸调整。许多默认为MFC应用程序应该具备的基本功能都是CFrameWnd类在完成 。 三、文档操作中的一些重要概念 串行化处理:将对象写入字节流和从字节流恢复对象的操作。可以通过文件、网络、串口传输数据。 文档的消息映射:确定消息传递时具体要传递给哪一个函数。通常MFC使用ClassWizard添加消息映射,有时也

文档评论(0)

82393aa + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档