初识文档视图结构

1、WinApp:管理应用程序

2、CFrameWnd:管理程序的框架窗口

3、CView:管理程序的视图

4、CDocument:管理程序的数据

5、CWinApp* AFXAPI AfxGetApp();在程序的任何地方,调用这个函数,都可以获得CWinApp类的指针。

6、任何时候通过AfxGetApp()函数,都可以获得WinApp类。

7、CFrameWnd类,可以通过GetActiveView()获得当前活动视图类。

8、CView类,可以通过GetDocument()函数获得,与视图类关联的唯一视图类。

9、CDocument类,可以通过两个函数:GetFirstViewPosition()函数和GetNextView(ps),获得文档类对应的视图类(一个文档类可以对应很多视图类)

10、CView和CDocument类如何获得CFrameWnd类:可以先获得WinApp类(通过AfxGetApp())

  在CWinApp类中,有一个成员变量:m_pMainWnd,记录了CFrameWnd类。

11、总结:只要知道这四个类中的任何一个类,就可以获得其他类。

12、SetActiveView(pViewNew);如何将视图类和框架窗口类联系起来的。

  m_pViewActive = pViewNew;

  在CFrameWnd类中,有一个成员变量,m_pViewActive,记录了当前的激活视图,这样CFrameWnd就记住了当前的激活视图。

13、所以SetActiveView(pViewNew);可以用m_pViewActive = pViewNew;来替代。效果是一样的。

14、pDoc->AddView(pView);如何将文档类和视图类连接起来的:

  pView->m_pDocument = this;这句将文档类,记录在视图类的m_pDocument,所以视图类可以找到对应的文档类。

  m_ViewList.AddTail(pView);

  OnChangeList();

  这两句,将视图类保存在文档类的视图链表中(所以文档类可以有很多视图类)

时间: 2024-08-24 04:37:44

初识文档视图结构的相关文章

文档/视图结构的应用

用Visual C++的MFC AppWizar生成的函数,一般是"文档/视图"结构的. 在这种程序结构中,文档对象和视图对象的分工是十分明确的,文档对象用来存储.管理和维护数据,而视图对象用来显示和操作数据. 所以,在文档/视图结构的应用程序中,一般要在文档类的声明中定义数据对象,在文档类的构造函数中初始化数据对象,而对数据对象的操作和显示则在视图类对象中完成. 为了在视图对象中,对文档对象的成员进行访问,视图类提供了一个成员函数GetDocument,它的原型为: CDocumen

文档/视图结构详细介绍

以单文档界面(SDI)应用程序为例,介绍MFC的文档/视图程序结构. 学习要求 理解文档/视图结构,可在AppWizard生成的SDI程序框架的基础上添加必要的代码,以生成自己的应用程序. 授课内容 大部分应用程序均要使用数据,其主要工作可以分为两部分:一是对数据的管理,如存储.复制和查询等任务,一是对数据的处理和输入输出,包括显示和打印.MFC提供了“文档/视图”结构支持这类应用程序. 12.1文档/视图概念 在文档/视图结构里,文档可视为一个应用程序的数据元素的集合,MFC通过文档类提供了大

mfc学习---文档视图架构

MFC的AppWizard可以生成三种类型的应用程序:基于对话框的应用.单文档应用(SDI)和多文档应用(MDI). 一般情况下,采用文档/视结构的应用程序至少应由以下对象组成:       1.应用程序是一个CwinApp派生对象,它充当全部应用程序的容器.应用程序沿消息映射网络分配消息给它的所有子程序.       2.框架窗口是一CfrmeWnd派生对象.       3.文档是一个CDocument派生对象,它存储应用程序的数据,并把这些信息提供给应用程序的其余部分.       4.视

单文档程序结构

创建过程 下面展示建一个单文档程序的过程,在MFC Application Wizard中第一步做如下选择 不妨Project style选择MFC stardard,Visual style and colors选择Windows Native/Default,其他的选项将创建不同样式的界面. 下一步Compound document support按默认选择None: 下一步是Document Template String文档模板字符串的设置,用于设置文档视结构的一些属性,如下 各选项的意

8.MFC多文档视图构架程序

一.多文档视图构架程序 1.相关问题 可以同时管理多个文档(可以有多个文档类对象) 2.相关类 CWinApp / CDocument / CView / CMIDChildWnd / CMIDFrameWnd CDocTemplate CMultiDocTemplate - 多文档模板类 CDocManager - 文档管理类

HTML介绍、文档基本结构、HTML标记的语法

一.HTML的介绍 Hyper Text Mark-up Language 超文本标记语言,是一种描述性标记语言(不是编程语言),主要用于描述网页(可以有图像,文字,声音,等..)但没有交互性 HTML运行原理: 1.本地运行:html文件用浏览器打开 2.远程访问运行:本地浏览器访问远程服务器(如:tomcal) 网页的文件名最好不要有中文,因为将来网页文件都是保存到服务器上的建议都使用英文 保存 HTML 文件时,既可以使用 .htm 也可以使用 .html 文件后缀. 二.HTML文档基本

命令行创建项目文档目录结构

命令行创建项目文档目录结构 [email protected] 2016年1月21日11:10:59 文档化有助于减轻记忆压力,有利于在互联网时代顺畅分享建议用Cmd MarkDown打开,DOS脚本有语法高亮. 缘起 之前整理所有项目文档的时候,发现项目结构与内容不协调: 纯文档项目,采用的商业项目管理目录,很多目录都是空的: 纯代码项目,采用商业项目管理目录,文档多是空的: 繁复的项目目录,会令人望而生畏,不利于文档化: 冗余的目录,很难快速找到所需文档资料 更好的方式,是用数据库管理文档并

如何从一个对话框弹出单文档视图

如何从一个对话框弹出单文档视图 分类: Visual C++2006-06-01 20:02 9323人阅读 评论(19) 收藏 举报 文档initializationmfctemplatesvalidationcommand 朱金灿 相信不少人进行数据库编程都有这样的问题,如何设置一个登陆框,通过登陆框来进入单文档视图.我看到很多数据库编程方面的书,都是对话框之间的相互切换.而在对话框中添加菜单不少人都不太熟悉(当然这是可以办到的).我在想:为何不能在对话框中弹出单文档,这样添加菜单等工作就方

文档视图程序设计

文档视图程序设计 1.实验目的和要求 (1)创建一个多文档应用程序Ex_SDI,用来操作"课程信息"文档. (2)创建一个可序列化类CCourseInfo,用于"课程信息"的序列化操作. (3)建立用于类型文档的菜单系统,其基本菜单命令包括"添加"."打开"和"保存".选择"添加"菜单命令,弹出相应的信息对话框,添加后信息显示在视图中,并保存在相应的CObArray类对象.选择"