博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
初识文档视图结构
阅读量:5077 次
发布时间:2019-06-12

本文共 958 字,大约阅读时间需要 3 分钟。

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();

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

转载于:https://www.cnblogs.com/xiaohaige/p/7435000.html

你可能感兴趣的文章
html+css 布局篇
查看>>
SQL优化
查看>>
用C语言操纵Mysql
查看>>
轻松学MVC4.0–6 MVC的执行流程
查看>>
redis集群如何清理前缀相同的key
查看>>
Python 集合(Set)、字典(Dictionary)
查看>>
获取元素
查看>>
proxy写监听方法,实现响应式
查看>>
第一阶段冲刺06
查看>>
十个免费的 Web 压力测试工具
查看>>
EOS生产区块:解析插件producer_plugin
查看>>
mysql重置密码
查看>>
jQuery轮 播的封装
查看>>
一天一道算法题--5.30---递归
查看>>
JS取得绝对路径
查看>>
排球积分程序(三)——模型类的设计
查看>>
python numpy sum函数用法
查看>>
php变量什么情况下加大括号{}
查看>>
linux程序设计---序
查看>>
【字符串入门专题1】hdu3613 【一个悲伤的exkmp】
查看>>