应用程序框架与文档视图结构

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

文档模板: 文档模板: 作用:把程序用到的框架窗口、文档、视图、应用程序对 作用:把程序用到的框架窗口、文档、视图、 象以及有关的资源联系起来。 象以及有关的资源联系起来。 一个程序可以定义多个文档模板。 一个程序可以定义多个文档模板。
CMainFrame类 3.2 CMainFrame类 重要特性: 重要特性: (1)由MFC中的类CMainFrame派生来。 MFC中的类CMainFrame派生来。 中的类CMainFrame派生来 (2)是CTestView的父窗口。 CTestView的父窗口。 的父窗口 主要功能: 主要功能: (1)管理程序的主框架窗口。 管理程序的主框架窗口。 (2)工具条、状态条的生成和管理。 工具条、状态条的生成和管理。
CTestDoc* CTestView::GetDocument() ::GetDocument CTestDoc* CTestView::GetDocument() { ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CTestDoc))); ASSERT(m_pDocument- IsKindOf(RUNTIME_CLASS(CTestDoc))); CTestDoc*)m_pDocument; *)m_pDocument return (CTestDoc*)m_pDocument; }
CDocument类中GetNextView()函数 类中GetNextView() (2) CDocument类中GetNextView()函数 用来在文档中得到试图, 用来在文档中得到试图,但文档中可以对应不止一个 视图,因此,必须进行一个循环。 视图,因此,必须进行一个循环。
文档-视图之间的作用函数: 文档-视图之间的作用函数: CDocument类中UpdateAllViews()函数 类中UpdateAllViews() (3) CDocument类中UpdateAllViews()函数 更新文档对应的所有视图。当文档中的数据发生变化时 更新文档对应的所有视图。 调用,用以对显示的数据进行更新。 调用,用以对显示的数据进行更新。
CTestView::OnUpdate(CView* pSender, ::OnUpdate lHint, CObject* pHint) void CTestView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint) { }
文档-视图之间的作用顺序: 文档-视图之间的作用顺序: 应用程序启动 CTestDoc对象被创建 CTestDoc对象被创建 CTestView对象被创建 CTestView对象被创建 视窗口被创建 CTestView::OnCreate被调用 CTestView::OnCreate被调用 CTestView::OnInitialUpdate被调用 CTestView::OnInitialUpdate被调用 视对象被初始化 视窗口被显示 用户编辑数据 用户退出程序 CTestView的函数更新CTestDoc中的数据 CTestView的函数更新CTestDoc中的数据 的函数更新CTestDoc CTestView对象被删除 CTestView对象被删除 CTestDoc对象被删除 CTestDoc对象被删除
CView类中常用函数: CView类中常用函数: 类中常用函数 CView类中OnDraw()函数 类中OnDraw() (1) CView类中OnDraw()函数 虚函数 视图刷新时自动调用。 视图刷新时自动调用。 CView类的OnInitialUpdate()函数 类的OnInitialUpdate() (2) CView类的OnInitialUpdate()函数 应用程序启动时,应用框架在调用了OnCreate()函数 应用程序启动时,应用框架在调用了OnCreate()函数 OnCreate() 后会立刻调用OnInitialUpdate()函数。 后会立刻调用OnInitialUpdate()函数。 OnInitialUpdate()函数 可以类用该函数对视对象进行初始化。 可以类用该函数对视对象进行初始化。
第4章 Microsoft类库基础 章 类库基础
了解MFC类库中常用的类。 了解MFC类库中常用的类。 MFC类库中常用的类
Microsoft类库概述 4.1 Microsoft类库概述 核心是以C++类的形式封装的Windows API。 核心是以C++类的形式封装的Windows API。 C++类的形式封装的 几乎覆盖了我们通常编程中所用到的所有基本功能。 几乎覆盖了我们通常编程中所用到的所有基本功能。 我们可以在此基础上派生出我们自己的类, 我们可以在此基础上派生出我们自己的类,加上所需的特 性和方法,完成具体的任务。 性和方法,完成具体的任务。 根类: 4.2 根类:CObject 类库中的绝大多数类都由此派生。 类库中的绝大多数类都由此派生。 该类提供了一些有用的功能,包括数据序列化、对象赋值、 该类提供了一些有用的功能,包括数据序列化、对象赋值、 类的兼容、类的运行时信息等。 类的兼容、类的运行时信息等。
消息 消息
CTestApp
消息
CTestView
parent document
CMainFrame
CTestDoc

CTestApp类 3.2 CTestApp类 重要特性: 重要特性: (1)由MFC中的类CWinApp派生来。 MFC中的类CWinApp派生来。 中的类CWinApp派生来 (2)InitInstance() (3)ExitInstance() 主要功能: 主要功能: 文档模板。 (1)定义文档模板。 定义文档模板 (2)接收Windows系统的消息。 接收Windows系统的消息。 Windows系统的消息 (3)启动程序界面 在生成该程序新的实例时, 在生成该程序新的实例时,自动 在程序实例退出时,自动调用。 在程序实例退出时,自动调用。 调用完成一些初始化的工作。 调用完成一些初始化的工作。
常用的视图类: 常用的视图类: (1)CView类 CView类 (2)CScrollView (3)CFormView (4)CEditView 所有视图类的基类 带有滚动条的视图类 具有无模式对话框特点的类 可以进行文字输入的类
CChildFrame类 3.4 CChildFrame类 重要特性: 重要特性: (1)由MFC中的类CMDIChildWnd派生来。 MFC中的类CMDIChildWnd派生来。 中的类CMDIChildWnd派生来 (2)是CTestView的父窗口。 CTestView的父窗口。 的父窗口 3.5 小结 应用程序框架中类与文件的关系 文档/ 文档/视图框架的结构及其操作 4个类的主要功能
文档-视图之间的作用函数: 文档-视图之间的作用函数: CView类中GetDocument()函数 类中GetDocument() (1) CView类中GetDocument()函数 在视图中得到相应的文档。它返回文档的指针,通过 在视图中得到相应的文档。它返回文档的指针, 该指针就可以对文档类的成员函数及公共数据进行访问。 该指针就可以对文档类的成员函数及公共数据进行访问。
第3章 应用程序框架与文档 视 章 应用程序框架与文档/视 图结构
了解应用程序的基本框架以及文档/视图结构。 了解应用程序的基本框架以及文档/视图结构。
3.1 生成应用程序框架 如果程序名为Test,那么生成的框架将包含4个基本的类: 如果程序名为Test,那么生成的框架将包含4个基本的类: Test CMainFrame: 主框架类 CTestApp: 主应用程序类 CTestDoc: 文档类 CTestView: 视图类
COleLinkingDoc
MFC窗口类 4.4 MFC窗口类 窗口支持类: 窗口支持类:CWnd 框架窗口类 CFrameWnd CMDIFrameWnd CMDIChildWnd CMiniFrameWnd COleIPFrameWnd CMenu 框架窗口类的基类 MDI程序的框架窗口类 MDI程序的框架窗口类 MDI程序的子框架窗口类 MDI程序的子框架窗口类 所有窗口类的基类
CTestDoc类 CTestDoc类与文档 类与文档/ 3.3 CTestDoc类、CTestDoc类与文档/视图结构 重要特性: 重要特性: (1) CTestDoc由MFC中的类CDocument派生来----数据维护 CTestDoc由MFC中的类CDocument派生来----数据维护 中的类CDocument派生来---CTestView由MFC中的类CView派生来----数据显示 中的类CView派生来---(2) CTestView由MFC中的类CView派生来----数据显示 主要功能: 主要功能: (1)文档类负责管理和维护数据。 文档类负责管理和维护数据。 (2)视图类负责将文档类中的数据显示给用户,并接受用 视图类负责将文档类中的数据显示给用户, 户的修改,将修改结果反馈给文档类。 户的修改,将修改结果反馈给文档类。
MFC应用程序框架结构类 4.3 MFC应用程序框架结构类 文档类 Cdocument COleDocuent COleSeverDoc 文档模板类 CDocTemplate 文档模板的基类 多文档界面(MDI) 多文档界面(MDI)中的文档模板 单文档界面(SDI) 单文档界面(SDI)中的文档模板 CMultiDocTemplate CSingleDocTemplate 文档类的基类 封装了包容器支持的功能 支持嵌入对象的链接 是服务器应用文档类的基类
GetDocument()GetDocument()->UpdateAllViews(this);
(4) CView类中OnUpdate()函数 CView类中OnUpdate()函数 类中OnUpdate() 当应用程序调用了文档类的UpdateAllViews()函数时, 当应用程序调用了文档类的UpdateAllViews()函数时, UpdateAllViews()函数时 应用程序框架会相应的调用该函数。 应用程序框架会相应的调用该函数。
MFC应用程序框架结构类 4.3 MFC应用程序框架结构类 应用与线程支持类 CWinApp 类 CWinThread 类 命令发送类 CCmdTarget类 CCmdTarget类 CCmdUI类 CCmdUI类 封装了MFC消息映射机制, 封装了MFC消息映射机制,可以接受 MFC消息映射机制 用于更新用户接口对象的可编程界面 消息,并对消息作出响应。 消息,并对消息作出响应。 应用程序类 线程类
MFC窗口类 4.4 MFC窗口类 视图类 CScrollView CFormView CDaoRecordView CRecordView
CDocument类中常用函数: CDocument类中常用函数: 类中常用函数 CDocument类中OnNewDocument()函数 类中OnNewDocument() (1) CDocument类中OnNewDocument()函数 虚函数 虚函数 虚函数 虚函数 新文档被创建时调用。 新文档被创建时调用。 打开已有文档时调用。 打开已有文档时调用。 保存文档时调用。 保存文档时调用。 关闭文档时调用。 关闭文档时调用。 CDocument类中OnOpenDocument()函数 类中OnOpenDocument() (2) CDocument类中OnOpenDocument()函数 (3) CDocument类中OnSaveDocument()函数 CDocument类中OnSaveDocument()函数 类中OnSaveDocument() CDocument类中OnCloseDocument()函数 类中OnCloseDocument() (4) CDocument类中OnCloseDocument()函数
相关文档
最新文档