从类的角度区分

基于对话框(3个类):

  • CAboutDlg
  • 程序名App
  • 程序名Dlg

单文档(5个类):

  • CAboutDlg
  • CMainFrame
  • 程序名App
  • 程序名Doc
  • 程序名View

多文档(6个类):

  • CAboutDlg
  • CMainFrame
  • 程序名App
  • 程序名Doc
  • 程序名View
  • CChildFrame

-------------------------------------------------------------------------------

多文档

CAboutDlg(“关于”对话框)

      CAboutDlg()

      DoDataExchange(CDataExchange* pDX)

CChildFrame(子框架类)

      AssertValid()

      CChildFrame()

      ~CChildFrame()

      Dump(CDumpContext& dc)

      PreCreateWindow(CREATESTRUCT& cs)

CMainFrame(主框架类)

      AssertValid()

      CMainFrame()

      ~CMainFrame()

      Dump(CDumpContext& dc)

      OnCreate(LPCREATESTRUCT lpCreateStruct)

      PreCreateWindow(CREATESTRUCT& cs)

      CStatusBar  m_wndStatusBar;

      CToolBar    m_wndToolBar;

CMyApp(应用程序类)

      CMyApp()

      InitInstance()

      OnAppAbout()

CMyDoc(文档类)

      AssertValid()

      CMyDoc()

      ~CMyDoc()

      Dump(CDumpContext& dc)

      OnNewDocument()

      Serialize(CArchive& ar)

CMyView(视图类)

      AssertValid()

      CMyView()

      ~CMyView()

      Dump(CDumpContext& dc)

      GetDocument()

      OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)

      OnDraw(CDC* pDC)

      OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)

      OnPreparePrinting(CPrintInfo* pInfo)

      PreCreateWindow(CREATESTRUCT& cs)

Golbals(全局)

    theApp      

-------------------------------------------------------------------------------

单文档

CAboutDlg(“关于”对话框)

      CAboutDlg()

      DoDataExchange(CDataExchange* pDX)

CMainFrame(主框架类)

      AssertValid()

      CMainFrame()

      ~CMainFrame()

      Dump(CDumpContext& dc)

      OnCreate(LPCREATESTRUCT lpCreateStruct)

      PreCreateWindow(CREATESTRUCT& cs)

      CStatusBar  m_wndStatusBar;

      CToolBar    m_wndToolBar;

CMyApp(应用程序类)

      CMyApp()

      InitInstance()

      OnAppAbout()

CMyDoc(文档类)

      AssertValid()

      CMyDoc()

      ~CMyDoc()

      Dump(CDumpContext& dc)

      OnNewDocument()

      Serialize(CArchive& ar)

CMyView(视图类)

      AssertValid()

      CMyView()

      ~CMyView()

      Dump(CDumpContext& dc)

      GetDocument()

      OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)

      OnDraw(CDC* pDC)

      OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)

      OnPreparePrinting(CPrintInfo* pInfo)

      PreCreateWindow(CREATESTRUCT& cs)

Golbals(全局)

    theApp

-------------------------------------------------------------------------------

对话框

CAboutDlg(“关于”对话框)

      CAboutDlg()

      DoDataExchange(CDataExchange* pDX)

CMyApp(应用程序类)

      CMyApp()

      InitInstance()

CMyDlg(对话框类)

      CMyDlg(CWnd* pParent /*=NULL*/)

      DoDataExchange(CDataExchange* pDX)

      OnInitDialog()

      OnPaint()

      OnQueryDragIcon()

      OnSysCommand(UINT nID, LPARAM lParam)

      HICON m_hIcon;

Golbals(全局)

    theApp

-------------------------------------------------------------------------------

CXXXApp是应用程序类,负责程序的启动和结束
CXXXDlg是主对话框类,程序的主界面。

单文档就是一个窗口只能处理一个文档,多文档就是同时可以处理多个,共享工具栏,菜单栏什么的,对话框就是一个提示用户进行选择或者确认的窗体。对话框模板适合于做交互界面,单文档模板适合于做文件处理,多文档模板适合于做多文件处理。不过,还是没法明确这个问题。

对话框模板适合于做交互界面
单文档模板适合于做文件处理
多文档模板适合于做多文件处理

单文档程序打开多个文件会产生多个进程;
多文档程序打开多个文件只需一个进程。

单文档只能进行一份文档或图片的操作,就是你不能同时在一个程序打开两个文件
多文档可以用多个窗口显示不同的信息,进行不同的任务,有多个视图环境,可以同时操作多个文件

基于MFC的单文档,多文档,对话框应用程序的更多相关文章

  1. MFC中 给基于CFormView的单文档添加背景图片

    关于基于CFormView的单文档应用程序,添加一个图片背景的方法之一如下: 下面是利用LoadImage实现.(先在程序目录中添加背景图片back.bmp) 1.在view类中添加类成员变量:(为C ...

  2. 创建MFC应用程序的类型:单文档+多文档+基于对话框

    单文档支持文档视图架构.数据的保存--(读取--改动)文档类功能--显示(视图类功能),比較方便. 基于对话框,主窗体是对话框类型.能够方便的使用控件,所见即所得的编程,比較方便. 单文档类似&quo ...

  3. MFC设置单文档保存格式以及标题

    在使用MFC编写单文档程序时,有时候需要将编辑的内容序列化为文件,使该文件可以直接以自己的程序打开,这时候需要在保存时将文件后缀改为我们想要的格式. 步骤 打开String Table,找到IDR_M ...

  4. VS2010/MFC编程入门之四十(文档、视图和框架:各对象之间的关系)

    前面一节中鸡啄米进行了文档.视图和框架的概述,本节主要讲解文档.视图.框架结构中各对象之间的关系. 各个对象之间的关系 文档.视图.框架结构中涉及到的对象主要有:应用程序对象.文档模板对象.文档对象. ...

  5. MFC用串行化实现文档存储和读取功能

    在面向对象的程序设计中,一般都是用二进制文件来保存文档资料.在VC++中控制和使用文件流的方法很多,MFC程序设计中常用的有两种方法:用CFile对象存储和读取文件:利用串行化存取文件.其中用CFil ...

  6. 懒得写文档,swagger文档导出来不香吗

    导航 前言 离线文档 1 保存为html 2 导出成pdf文档 3 导出成Word文档 参考 前言   早前笔者曾经写过一篇文章<研发团队,请管好你的API文档>.团队协作中,开发文档的重 ...

  7. 把 MWeb Lite 的文档库文档和数据搬到 MWeb 正式版中

    MWeb Lite 版的文档库中的文档要搬到 MWeb 正式版中,如果 Lite 版的文档中没有图片或者只有少量图片,可以用导入导出为 Markdown 的方法. 否则的话请用以下方式(注意下面这个方 ...

  8. SharePoint 更新文档库文档标题(Title)字段

    前言:记录下写代码中遇到的小问题,帮同事写一个批量更新文档库标题字段的小程序,本来以为就Update一下就可以了,10分钟可以搞定.结果10分钟过去了,代码写好了,执行起来不报错,调试也没问题,只是要 ...

  9. 使用C#动态生成Word文档/Excel文档的程序测试通过后,部署到IIS服务器上,不能正常使用的问题解决方案

    使用C#动态生成Word文档/Excel文档的程序功能调试.测试通过后,部署到服务器上,不能正常使用的问题解决方案: 原因: 可能asp.net程序或iis访问excel组件时权限不够(Ps:Syst ...

随机推荐

  1. 汇编语言基础 debug的使用

    -r 查看,改变CPU寄存器的内容 -r 加上寄存器名 在:后输入要写入的数据后 完成更改 debug 随着CS IP的改变 对应的汇编指令也不同 -r ip -r cs修改 ip cs 的值 d 段 ...

  2. 关于css3

    1.选择器: 属性选择器:[]; 查找条件:属性:我们可以通过属性来查找[^=][$=][*=][=][attr] 伪类选择器:  ::: ::before:::after: 必须指定一个conten ...

  3. centos安装mongodb 3.2.9

    centos 6.5 x64 1.下载地址:用迅雷下载,直接下载下不动 https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2 ...

  4. 用RollViewPager实现Android滚动banner

    最近项目中要实现一个循环滚动的banner,效果如下图 这个自己写实在是不方便,而且写出来也很难保证没有bug和性能缺陷,好在网上有人开源了一个实现滚动banner的RollViewPager框架,亲 ...

  5. 解决在VS2015下用C++开发的DLL在WIN7上无法加载运行

    首先用Dependency Walker检查该DLL依赖的库,如下图所示: 依赖的动态库除了KERNEL32.DLL.USER32.DLL外,还包括了MSVCP120D.DLL以及MSVCR120D. ...

  6. 【MySQL】排序原理与案例分析

    前言 排序是数据库中的一个基本功能,MySQL也不例外.用户通过Order by语句即能达到将指定的结果集排序的目的,其实不仅仅是Order by语句,Group by语句,Distinct语句都会隐 ...

  7. js对话框5秒自动消失

    使用了easyui的对话框控件 <html> <head> <title>5秒后关闭对话框</title> <meta http-equiv=&q ...

  8. zookeeper在集群负载均衡中的应用

    zookeeper本身是不提供负载均衡的策略,需要自己来实现,所以这里确切的说,是在负载均衡中应用到了zookeeper做集群的协调. 对于HTTP请求的负载均衡,成熟的解决方案是Nginx(或Hap ...

  9. Android学习笔记(十三)

    Android中的广播机制 Android提供了一套完整的API,允许应用程序自由地发送和接受广播. 发送广播的方法借助于Intent,接受广播的方法需要广播接收器(BroadcastsReceive ...

  10. BestCoder Round #90 A.Kblack loves flag(随机数生成种子)

    A.Kblack loves flag [题目链接]A.Kblack loves flag [题目类型]水题 &题意: kblack喜欢旗帜(flag),他的口袋里有无穷无尽的旗帜. 某天,k ...