MFC中的Document/View结构至关重要。Document负责存储数据,View负责显示数据。一个Document可以对应几个View,而一个View只能同时显示一个Document。Document、View和余下的Application Framework之间有一个复杂的握手过程。要了解这个过程需要熟悉几个函数:
1、CView::GetDocument
内联函数,使一个View得到自己对应的Document。如果使View派生的类对象调用它,那么将得到Document派生的类指针。
2、CDocument::UpdateAllViews
当存储数据发生改变时,Document用此函数通知所有与它对应的View进行更新显示内容。在CDocument的派生类中调用它时,省略第一个参数 pSender;在CView的派生类中调用它时,pSender设为this指针,以此告知函数不必通知本CView派生类不用更新。
3、CView::OnUpdate
虚函数。CView的派生类调用此函数以回应CDocument::UpdateAllView。它访问CDocument,取得CDocument数据并更新CView的成员变量或者控件。
4、CView::OnInitialUpdate
虚函数。当程序开始、点击“新建”、“打开”菜单时,该程序将被调用。当重载此函数时,要确保调用了基类CView的OnInitialUpdate函数。基类中的OnInitialUpdate函数除了调用OnUpdate函数外什么都不做。
5、CDocument::OnNewDocument
虚函数。当第一个CDocument对象创建和点击“新建”菜单(在SDI应用程序中)时,该函数被调用。这个函数适合初始化CDocument对象的数据。重载此函数时要保证调用基类的OnNewDocument。

说明:

摘录:

MFC尤其问题百出。虽然它大幅简化了某些工作(例如OLE),我却经常发现要让它们按我所想的去工作时,会在其它特性(例如Document/View架构)上碰壁。MFC还不是Windows程序设计者所追求的灵丹妙药,很少有人认为它是一个好的对象导向设计的模型。MFC程序写作者从他们使用的对象类别定义如何工作中受益颇深,并会发现他们经常参考MFC原始码,搞懂这些原始码是学习Windows API的好处之一

****************************************************************************分割线*****************************************************************************************************

后续添加

转载于:https://www.cnblogs.com/rzhlg/p/3688128.html

WinSDK学习--Document/View结构相关推荐

  1. node-webkit学习(2)基本结构和配置

    node-webkit学习(2)基本结构和配置 文/玄魂 目录 node webkit学习(2)基本结构和配置 前言 2.1  基本程序结构 2.2  package.json 2.2.1 必须的配置 ...

  2. AI:一个20年程序猿的学习资料大全—结构分析软件/办公软件/电气制造控制/高级语言编程/平面三维设计/视频编辑/FQ格式转换软件——只有你不想要的,没有你找不到的

    AI:一个20年程序猿的学习资料大全-结构分析软件/办公软件/电气制造控制/高级语言编程/平面三维设计/视频编辑/FQ格式转换软件--只有你不想要的,没有你找不到的 目录 (有偿提供,替朋友转载,扫描 ...

  3. Android学习笔记View的工作原理

    自定义View,也可以称为自定义控件,通过自定义View可以使得控件实现各种定制的效果. 实现自定义View,需要掌握View的底层工作原理,比如View的测量过程.布局流程以及绘制流程,除此之外,还 ...

  4. 嵌入式Linux系统编程学习之一目录结构

    嵌入式Linux系统编程学习之一目录结构 文章目录 嵌入式Linux系统编程学习之一目录结构 前言 一.Linux目录结构 前言 Linux目录结构 一.Linux目录结构 /bin:存放Linux的 ...

  5. c语言学习笔记【结构体02】结构体指针变量与结构体变量的函数参数,C语言学习笔记结构体02结构体指针变量与结构体变量的函数参数.docx...

    C 语言学习笔记[结构体02]结构体指针变量与结构体变量 的函数参数 C 语言学习笔记之结构体指针变量一提指针,那可 是 C 语言的核心了,有多少学子曾拜倒在指针的脚下.单纯的说指针,其实并不难,但是 ...

  6. c语言如何宏定义枚举型结构体,C语言学习笔记--枚举结构体

    枚举 枚举是一种用户定义的数据类型,它用关键字enum以如下语法格式来声明: enum 枚举类型名字 {名字0,名字1,...,名字n}: 枚举类型名字通常并不真的使用,要用的是大括号里面的名字,因为 ...

  7. (一)深度学习项目代码结构

    1.代码结构 参考链接:李宏毅2021年机器学习HW2 Phoneme Classification 2.代码细节 获得运行设备 这两种写法的返回值都是字符串 #check device def ge ...

  8. 自己动手,丰衣足食 —— 学习自定义View(一)

    自己动手,丰衣足食 -- 学习自定义View(一) 前言 我们经常在做项目的时候遇到这样的情况,客户提出需求,UI把设计稿拿出来,你发现直接用现成的开源库好像不行哎,多多少少有些不同.这时候你就会想: ...

  9. Make3D:从单个静止图像学习3D场景结构(论文2007)

    Make3D Learning 3D Scene Structure from aSingle Still Image(译文) 下载原文:https://cn.bing.com/academic/pr ...

最新文章

  1. (C++)求Fibonacci数列的第n个数的两种方法
  2. php实现qq相册功能,使用javascript如何实现QQ空间相册展示
  3. 机器人动力学方程的性质
  4. [云炬商业计划书阅读分享] 养生保健
  5. 退出python交互模式_python如何退出交互模式
  6. 【Linux】用户与权限
  7. 初中计算机新课标培训心得,新课标学习心得体会
  8. Android动态改变TextView字体颜色
  9. 工作项跟踪管理系统需求
  10. javascript框架比较(三)
  11. LKM:Linux Kernel Map(图解Linux内核)
  12. Voovan网络编程介绍
  13. LaTeX常用的符号
  14. 算法4_对称加密算法之SM4
  15. [python]微信公众号文章爬取
  16. S5P4418启动镜像分析
  17. 景安虚拟主机 Typecho设置伪静态教程 Apache 环境
  18. 打通对账的最后一公里——对账管理平台
  19. NoSQL与MongoDB简介
  20. lstm预测股票_股票相关性与lstm预测误差

热门文章

  1. 4.11 一维到三维推广
  2. opencv 平滑处理
  3. pandas 链接数据库
  4. matplotlib.lines.Line2D
  5. flask-前端-requests之response对应关系 text
  6. vba monthview控件64位_VBA学习
  7. linux常用删除空文件夹,Linux基础 linux系统中的批量删除文件与空文件删除的命令介绍...
  8. Java设计模式学习总结(1)——设计模式简介
  9. 计算机工程与应用3天外审,200629计算机工程与应用.pdf
  10. linux文本模式无法打字,文本终端模式下中文输入法(Fcitx)配置(openSUSE Leap 42.1)...