文档、视图和框架

文档和视图的概念是 MFC 框架的中心。文档是用户在编辑会话中与之交互的数据对象。它是用“文件”菜单上的“新建”或“打开”命令创建的,并且通常保存在文件中。(从 CDocument 类派生的标准 MFC 文档不同于活动文档和 OLE 复合文档。)视图是窗口对象,用户通过它与文档交互。

正在运行的应用程序中的主要对象有:

  • 文档。

    文档类(从 CDocument 派生)指定应用程序的数据。

    如果应用程序中需要 OLE 功能,则从 COleDocument 或其派生类之一派生文档类,具体取决于所需的功能类型。

  • 视图。

    视图类(从 CView 派生)是用户的“数据窗口”。视图类控制用户如何查看文档数据以及如何与之交互。在某些情况下,可能需要一个文档具有多个数据视图。

    如果需要滚动,则从 CScrollView 派生。如果视图具有在对话框模板资源中布局的用户界面,则从 CFormView 派生。对于简单的文本数据,使用CEditView 或从其派生。对于基于窗体的数据访问应用程序(如数据输入程序),从 CRecordView(对于 ODBC)派生。可用的还有CTreeViewCListView 和 CRichEditView 类。

  • 框架窗口

    视图显示在“文档框架窗口”内。在 SDI 应用程序中,文档框架窗口也是应用程序的“主框架窗口”。在 MDI 应用程序中,文档窗口是显示在主框架窗口中的子窗口。派生的主框架窗口类指定包含视图的框架窗口的样式和其他特性。如果需要自定义框架窗口,则从 CFrameWnd 派生以自定义 SDI 应用程序的文档框架窗口。从 CMDIFrameWnd 派生以自定义 MDI 应用程序的主框架窗口。另外从 CMDIChildWnd 派生一个类,以自定义应用程序支持的每种不同的 MDI 文档框架窗口。

  • 文档模板

    文档模板编排文档、视图和框架窗口的创建。从 CDocTemplate 类派生的特定的文档模板类创建和管理一种类型的所有打开的文档。支持多种文档类型的应用程序具有多个文档模板。对 SDI 应用程序使用 CSingleDocTemplate 类,对 MDI 应用程序使用 CMultiDocTemplate 类。

  • 应用程序对象

    应用程序类(从 CWinApp 派生)控制上面的所有对象,并指定应用程序的行为,如初始化和清理。应用程序仅有的一个应用程序对象创建和管理该应用程序支持的任何文档类型的文档模板。

  • 线程对象

    如果应用程序创建单独的执行线程(例如在后台执行计算的线程),则使用从 CWinThread 派生的类。CWinApp 本身是从 CWinThread 派生的,并且表示应用程序中的主执行线程(或主进程)。也可以在辅助线程中使用 MFC。

在一个正在运行的应用程序中,这些对象通过命令和其他消息绑定在一起,共同响应用户操作。一个应用程序对象管理一个或多个文档模板。每个文档模板创建和管理一个或多个文档(取决于应用程序是 SDI 还是 MDI)。用户通过包含在框架窗口中的视图查看和操作文档。下图显示 SDI 应用程序中这些对象之间的关系。

正在运行的 SDI 应用程序中的对象

本文章族的其余部分阐释框架工具、“MFC 应用程序向导”和资源编辑器如何创建这些对象,如何一起工作以及如何用于编程。窗口对象文档/视图结构中对文档、视图和框架窗口进行了更详细的探讨。

请参见

使用类编写 Windows 应用程序


转自:http://msdn.microsoft.com/zh-cn/library/cc485520(v=vs.71).aspx

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值