您的位置:首页 > 编程语言 > C语言/C++

Visual C++ 2008入门经典 第13章 使用MFC编写Windows程序

2012-11-26 21:23 585 查看
// 第13章 使用MFC编写Windows程序
/*
基于MFC的程序的基本元素
SDI应用程序和MDI应用程序的区别
如何使用MFC Application Wizard 生成SDI和MDI程序
MFC Application Wizard将生成哪些文件,这些文件的内容是什么
在MFC Application Wizard生成的程序中有哪里些主要的类,它们是如何相互连接的
定制MFC Application Wizard生成的程序的通用方法

//13.1 MFC的文档/视图概念
//使用MFC编写应用程序,意味着要接受一种特有的程序结构,其中应用程序数据是以特定的方式存储和处理的
MFC程序的结构包括两个面向应用的实体--文档和视图

13.1.1 文档的概念
文档是给予应用程序中与用户交互的数据集合的名称
文档类是从MFC库中的CDocument类派生的,需要添加数据成员来存储应用程序需要的数据,还要添加成员函数来支持对数据的处理,
应用程序不仅仅限于单文档类型,当应用程序中涉及若干不同种类的文档时,可以定义多个文档类

13.1.2 文档界面
可以选择是让程序每次中处理一个文档,还是处理多个文档,MFC库支持的单个文档界面的一缩写为SDI,用于那些每次只需要打开一个文档的程序,使用这种界面的程序称为SDI应用程序
对于那些需要一次打开多个文档的程序来说,可以使用多文档界面--通常称为MDI

13.1.3 视图的概念
视图总是与特定的文档对像相关
注意:视图对像和显示视图的窗口是截然不同的
显示视图的窗口被称为框架窗口,视图实际上是在自己的,完全充满框架窗口的客户区的窗口中显示的

文档对像可以拥有任意多个与其相关的视图对像,各个视图对像可以提供文档数据或文档数据子集的不同表示方法.

13.1.4 连接文档和视图
MFC提供了使文档与其视图相结合,以及使各个框架窗口与当前的活动视图相结合的机制,文档对像自动维护着指向相关视图的指针列表
//而视图对像拥有存储相关文档对像的指针的数据成员

1 文档模板
文档模板不仅管理程序中的文档对像,还管理与文档相关的窗口和视图,

2 文档模板类
对于SDI应用程序来说,应当使用MFC库中的CSingleDocTemplate类,这个类相当简单,因为SID应用程序只有一个文档,通常也只有一个视图
MDI应用程序则相当复杂,它们拥有多个同时在活动的文档,国在线需要使用另一个类CMultiDocTemplate来定义其文档模板,

13.1.5 应用程序和MFC
应用程序类CMyApp
框架窗口类CMyWnd
视图类CMyView,该类定义如何在CMyWnd对像创建的窗口的客户区中显示CMyDoc对像包含的数据
文档类CMyDoc,该类定义包含应用程序数据文档

13.2 创建MFC应用程序
在基于MFC的windows程序开发过程中,

视图类的功能
CEditView 提供简单的多行文本编辑功能--包括查找和替换,打印
CFormView 提供表单视图: 表单位一种对话框,可以包含提供数据显示和用户输入等功能的控件,
表单实质上与将在第22单学习的,在CLR中运行的Windows Forms应用程序中的窗体具有相同的功能性

CHtmlEditView 该类扩充了CHmtlView类,添加了编辑HTML页面的功能
CHtmlView 提供可以显示Web页面和本地HTML文档的视图
CListView 使我们能够了以列有控件的形式使用文档-视图体系结构
CRichEditView 提供显示和编辑包含丰富编辑文本的文档的功能
CScrollView 提供可以在显示和数据需要时自动添加滚动条的视图
CTreeView 提供以权形控件形式使用文档-视图体系结构的功能
CView 提供查看文档的基本功能

//13.2.2 MFC Application Wizard的输出
1 查看项目文件
2 查看类
3 定义类
注意: 宏不是C++代码,宏是上预处理器指令#define定义的名称,将被通常是C++代码的某些文本代替,但代替宏的也可能是某种常量或符号

4 创建可执行模块
注意: 当使用调试本配置编译程序时,编译器不会检测未初始化的变量,因此,即使我们仍然要测试程序,也可能需要临时使用发布版本配置进行连接和编译

预编译头文件

5 运行程序

6 程序的工作原理

13.3 小结

1 MFC Application Wizard 可以为我们生成完整的,可工作的,根据我们的要求定制的Windows应用程序框架构

2 Application Wizard 可以生成处理单个文档和单个视图的单文档界面(SDI)应用程序,也可以生成能够同时处理多个文档和多个视图的多文档界面(MDI)程序

3 在SDI应用程序中,从MFC类中派生的四个基本的类如下:
应用程序类
框架窗口类
文档类
视图类

4 程序只能有一个应用程序对象,该对像是由Application Wizard在全局作用域内自动定义的

5 文档类对像存储应用程序特有的数据,视图类对像显示文档类对像的内容

6 文档模板类对像用来把文档,视图和窗口捆绑在一起,对SDI应用程序来说,做这件事的是CSingleDocTemplate类;而在MDI应用程序中,使用的是CDocTemplate类
这两个类都是MFC类,通常不需要派生专用的版本

*/


  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: