该【文档视图框架 】是由【3827483】上传分享,文档一共【26】页,该文档可以免费在线阅读,需要了解更多关于【文档视图框架 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。文档/视图框架
基本内容
CONTENTS
01
文档/视图框架
单击添加文本具体内容
03
CFile
单击添加文本具体内容
02
序列化
单击添加文本具体内容
04
不适用的情况
单击添加文本具体内容
CCmdTarget
CWinThread
CWinApp
CWnd
CFrameWnd
CObject
主要负责初始化、运行和结束应用程序的执行。
负责管理操作数据及显示,并接收用户的输入。
结论:
CFrameWnd派生类的负担过重。
一、文档/视图框架
也是一种MVC架构
Model——Document
View——View
Controller——Document Template
将数据操作和数据显示、用户界面分离
程序每打开一个文件时,创建3个对象:
一个文档对象
一个视图对象
一个窗口框架对象
由文档模板对象负责管理文档、视图和框架窗体对象。
CDocument::UpdateAllViews(… )
1
CDocument::Serialize( )
2
该函数一般需要在文档子类中重载
3
void SXXXDoc::Serialize(CArchive&ar)
4
{
5
if(())
6
{//向文件中写数据( ar<< )}
7
else {//从文件中读数据(ar>>)}
8
}
9
文档类的常用成员函数
每次当视窗需要被重新绘制时,应用程序框架就要调用OnDraw函数。
驱使程序调用OnDraw的两个途径:
用户改变窗口的尺寸;窗口恢复先前被遮盖的部分;应用程序改变了窗口数据;
程序中调用Invalidate(或者InvalidateRect),通知Windows调用OnDraw函数
视窗类中的OnDraw成员函数
常用视图类
CScrollView:提供自动滚动或缩放功能。
CFormView:由对话框模板创建,并具有和对话框一样的设计方法。
CRecordView:提供表单视图直接与ODBC记录集对象关联;和所有的表单视图一样,CRecordView也是基于对话框模板设计的。
CEditView:提供包含编辑控件的视图
CRichEditView:提供包含复合编辑控件的视图
CListView:提供包含列表控件的视图。
CTreeView:提供包含树状控件的视图。
CDocument 有一个成员变量 CDocTemplate* m_pDocTemplate,用于回指其Document Template;另有一个成员变量 CPtrList m_viewList,表示它可以同时维护一系列的 Views。
CFrameWnd有一个成员变量CView* m_pViewActive ,指向目前正作用中的View。
亦可用CFrameWnd::GetActiveView()获得视图对象指针
CFrameWnd::GetActiveDocument()获得当前活动的文档对象指针。
CView有一个成员变量 CDocument* m_pDocument,指向相关的文档 Document。
CWnd::GetParentFrame可实现从视图类中获取主框架指针。
1
2
3
4
5
6
相互引用关系
A
切分窗口
B
静态切分:窗口第一次被创建时,窗格就已经被切分好了。最大窗格数目为16×16。
C
动态切分:允许用户在任何时候对窗口进行切分。最大窗格数目为2×2。
D
举例:Graph
E
一档多视
F
举例:Rect
文档视图相互作用的典型实例
文档视图框架 来自淘豆网m.daumloan.com转载请标明出处.