《文档视图框架》PPT课件

《文档视图框架》PPT课件

ID:36895660

大小:345.10 KB

页数:26页

时间:2019-05-10

《文档视图框架》PPT课件_第1页
《文档视图框架》PPT课件_第2页
《文档视图框架》PPT课件_第3页
《文档视图框架》PPT课件_第4页
《文档视图框架》PPT课件_第5页
资源描述:

《《文档视图框架》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、文档/视图框架基本内容文档/视图框架序列化CFile不适用的情况CCmdTargetCWinThreadCWinAppCWndCFrameWndCObject主要负责初始化、运行和结束应用程序的执行。负责管理操作数据及显示,并接收用户的输入。结论:CFrameWnd派生类的负担过重。一、文档/视图框架也是一种MVC架构Model——DocumentView——ViewController——DocumentTemplate将数据操作和数据显示、用户界面分离程序每打开一个文件时,创建3个对象:一个文档对象一个视图对象一个窗口框架对象由文档模板对象

2、负责管理文档、视图和框架窗体对象。CDocument::UpdateAllViews(…)CDocument::Serialize()该函数一般需要在文档子类中重载voidSXXXDoc::Serialize(CArchive&ar){if(ar.IsStoring()){//向文件中写数据(ar<<)}else{//从文件中读数据(ar>>)}}文档类的常用成员函数视窗类中的OnDraw成员函数每次当视窗需要被重新绘制时,应用程序框架就要调用OnDraw函数。驱使程序调用OnDraw的两个途径:用户改变窗口的尺寸;窗口恢复先前被遮盖的部分;应

3、用程序改变了窗口数据;程序中调用Invalidate(或者InvalidateRect),通知Windows调用OnDraw函数常用视图类CScrollView:提供自动滚动或缩放功能。CFormView:由对话框模板创建,并具有和对话框一样的设计方法。CRecordView:提供表单视图直接与ODBC记录集对象关联;和所有的表单视图一样,CRecordView也是基于对话框模板设计的。CEditView:提供包含编辑控件的视图CRichEditView:提供包含复合编辑控件的视图CListView:提供包含列表控件的视图。CTreeView:

4、提供包含树状控件的视图。相互引用关系CDocument有一个成员变量CDocTemplate*m_pDocTemplate,用于回指其DocumentTemplate;另有一个成员变量CPtrListm_viewList,表示它可以同时维护一系列的Views。CFrameWnd有一个成员变量CView*m_pViewActive,指向目前正作用中的View。亦可用CFrameWnd::GetActiveView()获得视图对象指针CFrameWnd::GetActiveDocument()获得当前活动的文档对象指针。CView有一个成员变量CD

5、ocument*m_pDocument,指向相关的文档Document。CWnd::GetParentFrame可实现从视图类中获取主框架指针。文档视图相互作用的典型实例切分窗口静态切分:窗口第一次被创建时,窗格就已经被切分好了。最大窗格数目为16×16。动态切分:允许用户在任何时候对窗口进行切分。最大窗格数目为2×2。举例:Graph一档多视举例:Rect(1)切分窗口类BOOLCreate(CWnd*pParentWnd,intnMaxRows,intnMaxCols,SIZEsizeMin,CCreateContext*pContext,

6、DWORDdwStyle=WS_CHILD

7、WS_VISIBLE

8、WS_HSCROLL

9、WS_VSCROLL

10、SPLS_DYNAMIC_SPLIT,UINTnID=AFX_IDW_PANE_FIRST);BOOLCreateStatic(CWnd*pParentWnd,intnRows,intnCols,DWORDdwStyle=WS_CHILD

11、WS_VISIBLE,UINTnID=AFX_IDW_PANE_FIRST);(2)一档多视MFC对于“一档多视”提供下列三个模式:1)在各自MDI文档窗口中包含同一个视图类的多个视图对象。2)在同一

12、个文档窗口中包含同一个视图类的多个视图对象(即切分窗口运用于SDI)3)在单独一个文档窗口中包含不同视图类的多个视图对象。(例如,同一个文档可同时有文字显示方式及图形显示方式的视图)。二、永久性对象与序列化内存中的对象可以被以文件的形式存储在永久性存储介质中,而当应用程序把它再从永久性存储介质读入后,如果该对象在内存中能恢复为原来的状态,那么这种对象就叫做永久性对象。在面向对象理论中,能使对象成为永久性对象的机制叫做序列化。磁盘对象在内存中的存储格式转换为文件的格式内存中的对象把文件的格式恢复为内存中的存储格式所谓永久性对象,就是这种对象具有这

13、样一种能力:它提供了一套描述自身的信息(例如对象的类名称及数据在内存中的存储格式等)。当应用程序存储对象时,应用程序可以把这些信息与对象的数据成员一起

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。