码迷,mamicode.com
首页 > 其他好文 > 详细

初识文档视图结构

时间:2017-08-26 13:43:25      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:窗口   pos   连接   tap   替代   文档   addview   main   hang   

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

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

初识文档视图结构

标签:窗口   pos   连接   tap   替代   文档   addview   main   hang   

原文地址:http://www.cnblogs.com/xiaohaige/p/7435000.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!