首页 » 软件开发 » VC|基于MFC的Windows应用程序开发(应用程序文档视图数据向导)

VC|基于MFC的Windows应用程序开发(应用程序文档视图数据向导)

落叶飘零 2024-07-23 23:56:36 0

扫一扫用手机浏览

文章目录 [+]

MFC应用程序框架是一个标准的Windows应用程序,包括窗口、菜单栏、工具栏。

1 MFC的文档/视图概念

使用MFC编写应用程序,意味着要接受一种特有的程序结构,其中应用程序数据是以特定的方式存储和处理的。
这一点听起来好像是一种限制,但实际上几乎完全不是;而且,在速度和实现的简易性方面得到的好处远远超过了任何能够想象到的缺点。
MFC程序的结构包括两个面向应用的的实体-文档和视图。

文档/视图结构的基本出发点是将数据处理和数据的显示相分离,使每个类都能够集中处理某一功能。
在文档/视图结构中,有关数据处理的工作可以分为数据的管理和数据的可视化两部分,文档用于管理和维护数据,视图用于显示和编辑数据。

VC|基于MFC的Windows应用程序开发(应用程序文档视图数据向导) 软件开发
(图片来自网络侵删)

文档在MFC应用程序中代表了能够被逻辑地组合在一起的一系列数据,包括文本、图形、图像和表格数据,其主要作用是把数据的处理从对用户界面的处理中分离出来,以便集中处理数据,并同时提供了一些与其他类交互的接口。

文档是应用程序中与用户交互的数据集合。
虽然“文档”这个词语意味着某种文本的本质,但文档绝不仅仅限于文本。
文档实际上可以是游戏数据、几何模型、文本文件、以及其它的一些数据集合,或者是任何我们需要的事物。
“文档”这个术语只是一种方便的标签,表示作为整体对待的应用程序中的应用数据。

程序中的文档是作为文档类的对象定义的。
文档类是从MFC库中的CDocument类派生的,需要添加数据成员来存储应用程序需要的数据,还要添加成员函数来支持对数据的处理。
应用程序不仅限于单文档类型;当应用程序中涉及若干不同种类的文档时,可以定义多个文档类。

文档类实际上就是数据类,在应用程序中对数据的操作主要是在这个类中实现的,如数据的读取、存储等,都可以在文档类中实现。
视图对象是用来显示文档对象的内容。

以这种方式处理应用程序数据使MFC能够提供标准的机制来管理作为整体的应用程序数据集合,并在磁盘上存储这些数据。
这些机制是文档类从CDocument类中继承的,因此在不编写任何代码的情况下,就能使应用程序自动获得大量功能。

可以选择让程序每次只处理一个文档,还是处理多个文档。
MFC库支持的单文档界面(Single Document Interface, SDI),用于每次只需要打开一个文档的程序。
使用这种界面的程序称为SDI应用程序。

对于需要一次打开多个文档的程序而言,保以使用多文档界面(Multiple Document Interface, MDI).使用MDI,程序不仅能够打开类型相同的多个文档,还可以同时处理多个类型不同的文档。
在MDI应用程序中,各个文档都显示在应用程序窗口的一个子窗口中。

视图是文档数据在屏幕上的映像,用户可以通过视图查看文档,也可以通过视图修改文档,一个视图总是与一个文档对象相关联,用户通过与文档相关联的视图与文档进行交互,当用户打开一个文档时,应用程序创建与之相关联的视图,但一个文档可以拥有多个视图。

视图总是与特定的文档对象相关。
文档对象包含程序中的一组应用数据,而视图对象可以提供一种机制来显示文档中存储的部分或全部数据。
视图定义了在窗口中显示数据的方式以及与用户交互的方式。
从MFC类CView派生就可以定义自己的视图类。

对话框程序没有视图窗口和文档对象等概念,这类程序通常是在对话框上放置控件,然后通过控件的操作和用户交互。

2 VC++工具组件

2.1 C/C++编译器

2.2 资源编辑器和资源编译器

2.3 链接器和调试器

2.4 应用程序向导

2.5 类向导

2.6 资源浏览器

3 基于MFC的Windows程序开发的4种工具

3.1 首先使用MFC AppWizard向导来创建基本的程序代码;

3.2 在Class View中使用项目的上下文菜单,给项目添加新的类和资源;

3.3 在Class View中使用项目的上下文菜单,扩展并定制程序中已有的类。
主要是添加变量和函数;

3.4 使用Resource Editor创建或修改菜单和工具栏这样的对象。

创建MFC应用程序的最容易方法是使用MFC应用程序向导,根据在向导中选择的选项,MFC应用程序向导为应用程序生成适当的类和文件。

4 MFC应用程序向导主要步骤

MFC AppWizard应用程序向导是一个创建基于微软基础类库MFC的Windows应用程序的向导,是VC最常用的向导工具,当用其创建一个项目时,可以自动生成一个MFC的应用程序框架。
MFC将每个应用程序共同需要使用的代码封装起来,如完成默认程序初始化功能,建立应用程序界面和基本的Windows消息,简化程序员做相同的重复工作。

MFC应用程序向导的每一个步骤中,我们都可以根据需要来选择各种特性,从而实现定制应用程序。

主要步骤如下:

4.1 选择MFC应用程序向导:MFC AppWizard[exe]

MFC应用程序向导是一个代码生成器,其能够创建一个是简单的应用程序框架,该框架的结构和内容取决于在AppWizard向导中所做的选择,AppWizard可以生成一个带有类名、源代码文件的Windows应用程序的框架。

4.2 选择应用程序类型

Single document(单文档),为应用程序创建一个单文档界面(SDI)结构。
在此类应用程序中,文档的框架窗口只能容纳一个文档,也就是一次只允许在程序中打开一个文件,如记事本就是一个单文档应用程序。

Multiple documents(多文档),为应用程序创建一个多文档界面(MDI)结构。
在此类应用程序中,文档的框架窗口可以容纳多个文档,也就是一次允许在程序中打开多个文件,如Word就是一个多文档应用程序。

Dialog based(基于对话框),为应用程序创建一个基于对话框架构。
一些简单的工具一般采用基于对话框的形式,需要处理的数据一般包含在诸如编辑框、复选框、单选按钮等控件中。

4.3 是否选择数据库支持;

4.4 选择复合文档类型及其它支持;

4.5 选择用户界面功能,如工具栏、状态栏等;

4.6 选择工程样式和MFC类库使用方式;

4.7 提示建立的类;

通过上述步骤所做的选择,确定的应用的类型、界面、功能。

5 应用程序向导生成的文件类型

应用程序向导在创建可执行程序时必须首先创建一个项目,并为此项目生成一系列文件,如头文件、源文件和资源文件等。
这些文件都放在项目文件夹内,它们各自发挥着不同的作用,如下表所示:

文件后缀名文件类型主要作用dsw工作区文件将项目的详细情况组合到Workspace工作区中dsp项目文件存储项目的详细情况并代替mak文件hC++头文件存储类的定义代码cppC++源文件存储类的成员函数的实现代码rc资源脚本文件存储菜单、工具栏和对话框等资源rc2资源文件用来将资源包含到项目中ico图标文件存储应用程序图标bmp位图文件存储位图clwClassWizar类向导文件存储Class Wizard类向导使用的类信息nc没有编译的浏览文件保留Class View和Class Wizar使用的详细情况6 头文件和源文件

应用程序向导会根据应用程序的类型(单文档、多文档或基于对话框的程序)自动生成一些头文件和源文件。
头文件用于定义类,包括指明基类、声明成员变量和成员函数。
源文件用来实现类,主要定义成员函数的实现代码和消息机制。

主要包括:

框架窗口类

文档类

视图类

应用程序类

资源类

在一个VC项目中,资源通过资源标识符加以区别,如下表列出 MFC所规定的资源标识符前缀所表示的资源类型:

资源标识符前缀说明IDR_主菜单、工具栏、应用程序图标和快捷键表IDD_对话框IDC_控件和光标IDS_字符串IDP_提示信息对话框的字符串ID_菜单命令项

相关文章

语言中的借用,文化交融的桥梁

自古以来,人类社会的交流与发展离不开语言的传播。在漫长的历史长河中,各民族、各地区之间的文化相互碰撞、交融,产生了许多独特的语言现...

软件开发 2025-01-01 阅读1 评论0

机顶盒协议,守护数字生活的新卫士

随着科技的飞速发展,数字家庭逐渐走进千家万户。在这个时代,机顶盒成为了连接我们与丰富多彩的数字世界的重要桥梁。而机顶盒协议,作为保...

软件开发 2025-01-01 阅读1 评论0

语言基础在现代社会的重要性及方法步骤

语言是人类沟通的桥梁,是社会发展的基础。语言基础作为语言学习的基石,对于个人、社会乃至国家的发展具有重要意义。本文将从语言基础在现...

软件开发 2025-01-01 阅读2 评论0

粤语电影,传承文化,点亮时代之光

粤语电影,作为中国电影产业的一朵奇葩,以其独特的地域特色、丰富的文化内涵和鲜明的艺术风格,赢得了广大观众的喜爱。本文将从粤语电影的...

软件开发 2025-01-01 阅读3 评论0

苹果游戏语言,塑造未来娱乐体验的基石

随着科技的飞速发展,游戏产业逐渐成为全球娱乐市场的重要支柱。在我国,游戏产业更是蓬勃发展,吸引了无数玩家和投资者的目光。而在这其中...

软件开发 2025-01-01 阅读1 评论0