zoukankan      html  css  js  c++  java
  • 关于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);//文档模块是文档类型模板,决定了该程序支持多少种文件类型

  • 相关阅读:
    深入理解 JavaScript(五)
    深入理解 JavaScript(四)
    深入理解 JavaScript(三)
    opecv官网接口查询
    一个python-opencv博客
    Python中range和xrange的区别
    【转载】opencv 二值化函数——cv2.threshold
    python-opencv中的cv2.inRange函数
    anaconda conda install wxpython4 安装包 python3环境(GUI)
    python之assert
  • 原文地址:https://www.cnblogs.com/zhuluqing/p/8796965.html
Copyright © 2011-2022 走看看