当前课程知识点:VC++面向对象与可视化程序设计(下):MFC编程基础 >  第9章 单文档与多文档 >  9-1 概述 >  9-1

返回《VC++面向对象与可视化程序设计(下):MFC编程基础》慕课在线视频课程列表

9-1在线视频

9-1

下一节:Video

返回《VC++面向对象与可视化程序设计(下):MFC编程基础》慕课在线视频列表

9-1课程教案、知识点、字幕

大家好!今天我们开始第九章的内容

我们主要介绍单文档与多文档

那实际上我们在第八章的时候

已经接触了单文档

在当时我们只是讲了一些单文档的简单的应用作为入门

而这一章主要是要介绍文档视图的结构及其工作机制

在了解了文档视图的结构和工作机制的基础上

我们再通过案例进一步介绍单文档及多文档的操作

首先我们来了解一些基本的概念

单文档界面与多文档界面

Visual C++的MFC库 它支持三种不同的应用程序

这个大家比较熟悉

因为在创建工程文件的时候有单文档界面 多文档界面

以及基于对话框的应用程序

三个选项供大家选择

那我们进入MFC的学习

刚开始阶段我们主要介绍基于对话框的应用程序

尤其是在介绍基于对话框的应用程序的过程中

我们介绍了一系列的控件的使用

那么上一讲我们介绍了简单的单文档应用程序

单文档就是SDI Single Document Interface

多文档界面叫MDI

MDI的应用程序每次可以读写多个文件或者文档

它可同时对多个文件进行操作

因此它也可以有多个窗口

我们在使用应用程序向导创建SDI和MDI界面的应用程序的过程

应该说几乎完全一样

它的主要差别在于

在创建SDI界面的应用程序的时候

它并不生成CChildFrame这个类

CMainFrame类的基类是CFrameWndEx类

在创建MDI界面的应用程序时

就有CChildFrame类生成

CMainFrame类的基类是CMDIFrameWndEx

那我们谈到视图

上一讲我们知道我们的操作主要是在视图文件里进行

视图是文档的不同表现形式

比如说一个html语言的文件

在浏览器里面和记事本里面打开的表现形式是不同的

但它们操作的是同一个文件

这也就是说一个文档对应着两个视图

由于每一个文档可以有多个视图

但每个视图只能对应于一个确定的文档

因此多文档程序需要解决的问题

仅仅是多个文档的数据管理方法的问题

对多文档程序

最初的文档模板它只支持主窗口

但每次打开一个新文档时都调用CDocument

这个类的方法或者说函数

建立一个由CMDIChildWnd派生的新的MDI的子窗口

这些窗口中保存着各种已打开的文档

这些所有的细节都由MFC库处理

那我们介绍一下文档视图的结构

在文档视图结构中

对数据进行管理和维护

数据保存在文档类的成员变量中

然后文档类通过串行化的过程将数据保存到

磁盘文件或者数据库中

文档类还可处理来自菜单、工具栏按钮

和加速键的WM_COMMAND消息

那除了WM_COMMAND消息之外

文档不能处理其他的Windows消息

由此我们可以看出

命令消息可以被多种对象处理

这些对象除了窗口和视图外

还可以是文档、文档模板或者应用程序本身

这一点与Windows消息和控件通知消息不同

因为Windows消息和控件通知消息

就只能被窗口和视图处理

视图它是在文档和应用程序之间起中介作用

它可以接收用户的输入

并接受用户的修改

通过调用文档和视图的接口

将修改的信息反馈给文档类

实际的数据更新仍然由文档来完成

视图可以直接或间接地访问文档类中的成员变量

它从文档类中 而不是从存储介质中

将文档中的数据取出来

然后在屏幕上显示文档的数据

那文档视图结构的工作机制又是怎样的呢

视图通过GetDocument成员函数

获得指向相关联的文档对象的指针

然后通过这个指针调用文档类的成员函数

来从文档中读取数据

视图把数据显示于计算机的屏幕上

然后用户通过与视图的交互来查看数据

并对数据进行修改

视图通过相关联的文档类的成员函数

将经过修改的数据传递给文档对象

文档对象获得修改过的数据之后

对其进行必要的修改

最后保存到磁盘文件中

这就是文档视图结构的工作机制

那下面给大家介绍一下单文档程序中

文档、视图对象的创建过程

单文档程序中框架窗口、文档和视图的创建

是在应用程序对象的InitInstance()成员函数中

通过文档模板类完成的

InitInstance()这个函数是在.cpp的文件中

首先我们先定义一个CSingleDocTemplate

就是单文档模板类的一个对象

然后通过new指针创建pDocTemplate这个指针

这个CSingleDocTemplate它有四个参数

第一个参数就是主窗口框架的ID

第二个参数CMyDoc是应用程序中的文档类

第三个参数是CMainFrame是应用程序中的框架窗口

第四个参数是CMyView是应用程序中的视图类

那么这样得到了pDocTemplate之后

通过AddDocTemplate来加载文档模板类对象

到文档模板列表之中

VC++面向对象与可视化程序设计(下):MFC编程基础课程列表:

第0章 课前讨论

-讨论实录

--0-0

第6章 MFC基础知识

-6-1 MFC概述

--6-1 MFC基础知识

-6-2 C++的基本知识

--6-2-1 类

--6-2-2 对象

--6-2-3 类的方法

--6-2-4 内联函数

--6-2-5 构造函数和析构函数

--6-2-6 重载

--6-2-7 友元函数

--6-2-8 友元类

--6-2-9 指针

--6-2-10 类的继承

--6-2-11 多态性和虚拟函数

-6-3 MFC类的组织结构及主要的类的简介

--6-3-1 MFC类的组织结构

--6-3-2 根类

--6-3-3 应用程序结构类

--6-3-4 可视对象类

--6-3-5 通用类

--6-3-6 OLE类

--6-3-7 ODBC数据库

-6-4 MFC中全局函数和全局变量

--6-4 MFC中全局函数和全局变量

第7章 Windows标准控件在可视化编程中的应用

-7-1 概述

--7-1-1

--7-1-2

-7-2 按钮控件及其应用

--128B12447816EEF99C33DC5901307461

-7-3 按钮控件及其应用

--7-3

-7-4 静态控件

--7-4

-7-5 列表框控件

--7-5-1

--7-5-2

-7-6 编辑框控件

--7-6

-7-7 组合框控件

--7-7

-7-8 对话框通用控件

--7-8-1

--7-8-2

-讲义源代码

--html

第8章 在MFC中创建应用程序的资源

-8-1&2 资源的应用以及菜单资源的使用

--8-1-1

--8-1-2

-8-3 快捷菜单的创建及其应用

--8-3

-8-4 加速键资源的创建及其使用

--8-4

-8-5 工具条资源的创建及其使用

--8-5

-8-6 字符串资源的使用

--8-6

-8-7 位图资源的创建及其使用

--8-7

-课堂示例源代码

--html

-第一次作业内容及要求

--html

--第一次作业及答题链接--作业

第9章 单文档与多文档

-9-1 概述

--9-1

-9-2 Doc/View框架的主要成员

--Video

-9-3 文档操作中的一些重要概念

--Video

-9-4 SDI编程实例

--Video

-9-5 MDI编程实例

--9-5-1

--9-5-2

-课堂示例源代码

--html

-第二次作业内容及要求

--html

--第二次作业及答题链接--作业

第10章 多媒体应用程序的设计

-10-1 利用音频函数实现多媒体程序设计

--10-1-1

--10-1-2

--10-1-3

--10-1-4

-10-2 利用Windows Media Player控件实现多媒体程序设计

--10-2

-课堂示例源代码

--html

第11章

-例11-1

--例1

-例11-2

--例11-2

-例11-3

--例11-3

-例11-4

--例11-4

-11-1 ODBC介绍与引用

--11-1

-课堂示例源代码

--html

第三次作业及答题链接

-第三次作业及答题链接

9-1笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。