文档视图模式
一、创建文档视图模式
- 会自动生成4个类也对应4组文件(头文件、cpp文件)
- CTestApp类
- 这里是程序开始的地方
- 这是整个软件的整体类、主线程类、负责消息循环和用户交互
- CTestView类
- CTestDoc类
- 这是文档类
- 主要用于和文件打交道,例如从磁盘上读取数据,属于“后台数据”
- CMainFrame类
- 这是主框架类
- 主要是一个框架的”定型“,所有的按钮、标签、编辑框等本质上也属于是窗口,这些窗口显示在框架上
- 如下图所示
二、各个类之间的数据传递方式
- 通用
-AfxGetApp()可以获得CWinApp应用类指针
-AfxGetApp()->m_pMainWnd**获取框架窗口指针(也就是主窗口指针)
- APP类中获取模板指针
- CWinApp::GetFirstDocTemlatePostion()
- CWinApp::GetNextDocTemplate()
- 文档Doc类中获取其他类的信息
- CDocument::GetFirstViewPosition()、CDocument::GetNextView()遍历和该文档关联的所有视图
- CDocument::GetDocTemplate()获取文档模板指针
- CDocument::UpdateAllViews()更新所有视图
- 视图View类中获取其他类的信息
- CView::GetDocument()得到对应的文档指针
- CView::GetParentFrame()获取框架窗口
- 框架MainFrame类中获取其他类的数据
- CFrameWnd::GetActiveView()获取当前活动视图的指针
- CFrameWnd::GetActiveDocument()获取当前活动视图的文档指针