• 关于MFC视图文档框架的理解-1


    一、单个文档和多个文档的区别:

    MFC分为对话框程序,单文档程序和多文档程序。

    单个文档程序:一个主框架内仅允许打开一个视图,若要打开另一个,则当前的文档必须得关闭。单文档程序可以打开不同格式的文档。

    对于单文档程序,主框架(CFrameWnd)、视图(CView)、文档(CDocument)被文档模板CSingleDocTemplate粘合在一起。

    多个文档程序:一个主框架内可以打开多个视图。

    对于多文档程序,主框架(CMDIFrameWnd)是单独存在的,子框架(CMDIChildWnd)、视图(CView)、文档(CDocument)被文档模板CMultiDocTemplate粘合在一起的。

    二、单文档模板和多文档模板的区别:

    文档模板是管理能打开文件类型的,不同的文件类型就需要不同的文档模板。

    一个CSigleDocTemplate和CMultiDocTemplate都只能打开一种类型的文档,区别是前者只能打开一个文档,后者可以打开多个同类格式的文档。

    因此如果需要程序支持多种格式的文档,必须添加不同的文档模板。

    三、CDocument、CView、CChildFrameWnd是由谁创建的?

    是由文档模板创建的。

    CMultiDocTemplate* pDocTemplate;

    pDocTemplate=new CMultiDocTemplate(ID_MAINFRAME,RUNTIME_CLASS(CMyDoc),RUNTIME_CLASS(CMyFrame),RUNTIME_CLASS(CMyView));//这一句只是初始化一个文档模板,并没有创建文档视图框架对象,因为这些对象是在后面由文档模板调用OpenDocumentFile()创建的。

    AddDocTemplate(pDocTemplate);//文档模块是文档类型模板,决定了该程序支持多少种文件类型

  • 相关阅读:
    隔列求和
    拆分工作表一表变多表(Excel代码集团)
    拆分工作表一表变多簿(Excel代码集团)
    用汇编的眼光看C++(之退出流程) 四
    房价预测——备忘
    备用——GIT操作
    .NET 包对不同框架的兼容性
    Mac 快捷键 备忘录
    C#用法笔记——备忘
    git分支切换提交修改
  • 原文地址:https://www.cnblogs.com/zhuluqing/p/8796965.html
Copyright © 2020-2023  润新知