menu_exp.rar

  • 浏览量:1302
  • 下载量:54
  • 资料大小:0 B
  • 日期:2014-07-23
  • 上传者:Eagleson
  • 分享
  • 评论
  • 举报
  • 收藏

资料描述

    文档、视图和框架简介


           在之前创建的单文档工程menu_exp中,我们可以看到mfc向导自动为我们生成了cmenu_expdoc类、cmenu_expview类和cmainframe类,它们就分别是文档类、视图类和框架窗口类。





           文档/视图结构是mfc提供的一种不错的设计,它将数据的处理和显示分开来,这样更便于我们对程序的维护和扩展。下面分别介绍这种结构中涉及到的几个重要概念。


           文档


           文档对象用于管理和维护数据,包括保存数据、取出数据以及修改数据等操作,在数据被修改以后,文档可以通知其对应的所有视图更*显示。


           视图


           视图对象将文档中的数据可视化,负责从文档对象中取出数据显示给用户,并接受用户的输入和编辑,将数据的改变反映给文档对象。视图充当了文档和用户之间媒介的角色。


           框架


           一个文档可能有多个视图界面,这就需要有框架来管理了。框架就是用来管理文档和视图的。框架窗口是应用程序的主窗口,应用程序执行时会先创建一个最顶层的框架窗口。视图窗口是没有菜单和边界的子窗口,它必须包含在框架窗口中,即置于框架窗口的客户区内。


           文档模板


           文档模板中存放了与文档、视图和框架相关的信息。应用程序通过文档模板创建文档对象、框架窗口对象和视图对象。另外,文档、视图和框架之间的关系也是由文档模板来管理的。


           我们来看看menu_exp单文档程序中,cmenu_expapp应用程序类的成员函数cmenu_expapp::initinstance()创建并注册文档模板的部分:





         在构造文档模板类csingledoctemplate的对象时,第一个参数是资源id idr_mainframe,它包括框架窗口图标等,后面的三个参数都是runtime_class宏的调用,runtime_class用于获取类的运行时信息,文档模板可以根据这些动态创建信息来创建相应类的对象,即文档对象、框架窗口对象和视图对象。adddoctemplate函数用来注册文档模板对象。


           框架类、文档类和视图类


           在vs2012自动生成的代
评论(0)

登录后可评论,请 登录注册

   
相关资料
换一换