1、Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境2主要内容第1章 Visual C+开发环境第2章 MFC应用程序第3章 图形与文本第4章 菜单、工具栏与状态栏第5章 对话框第6章 Windows常用控件第7章 文档与视图第8章 打印编程第9章 动态链接库编程第10章 多线程编程第11章 数据库编程第12章 多媒体编程Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境3 1.1 1.1 集成开发环境窗口集成开发环境窗口 1.2 AppWizard1.2 AppWizard与与ClassWizard
2、ClassWizard 1.3 1.3 项目与项目工作区项目与项目工作区 1.4 1.4 集成开发环境的菜单栏集成开发环境的菜单栏 1.5 1.5 集成开发环境的工具栏集成开发环境的工具栏 1.6 1.6 资源与资源编辑器资源与资源编辑器第第 1 章章 Visual C+开发环境开发环境 Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境41.1 集成开发环境窗口集成开发环境窗口 Visual C+开发环境是一个基于开发环境是一个基于Windows操作系操作系统的可视化、面向对象的集成开发环境。统的可视化、面向对象的集成开发环境。进入进入Visu
3、al C+集成开发环境:集成开发环境:直接双击桌面直接双击桌面Microsoft Visual C+图标,进入图标,进入Visual C+IDE单击【开始】【程序】菜单,选择单击【开始】【程序】菜单,选择Microsoft Visual Studio 6.0中的中的Microsoft Visual C+6.0菜单菜单项,进入项,进入Visual C+6.0 IDE。如下图所示。如下图所示。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境5标题栏 菜单栏 工具栏 项目工作区 编辑区 输出区 Visual C+程序设计与应用教程9-Aug-22第第
4、1章章 Visual C+开发环境开发环境61.2 AppWizard1.2 AppWizard与与ClassWizard ClassWizard 1.2.1 AppWizard 利用应用程序向导可以快速创建各种风格的应用利用应用程序向导可以快速创建各种风格的应用程序框架,并可自动生成程序通用的源代码。程序框架,并可自动生成程序通用的源代码。启动启动Visual C+,进入,进入Visual C+IDE,从,从File菜单上选择菜单上选择New菜单项,此时将弹出菜单项,此时将弹出New对话框,如对话框,如下图所示。下图所示。Visual C+程序设计与应用教程9-Aug-22第第1章章 Vis
5、ual C+开发环境开发环境74 4个选项卡个选项卡 Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境8 1.Files1.Files选项卡选项卡 作用:作用:创建文件创建文件 Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境92.Projects选项卡选项卡 作用:作用:创建项目创建项目 Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境10【例【例1.1】利用应用程序向导】利用应用程序向导AppWizard创建一个单创建一个单文档应用程序文档应
6、用程序Li1_1。(演示演示)Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境111.2.2 ClassWizard 利用利用ClassWizard可以为它建立新类、进行消息可以为它建立新类、进行消息映射、增加类的成员变量、修改已存在的成员函数和映射、增加类的成员变量、修改已存在的成员函数和成员变量等。成员变量等。启动启动ClassWizard的三种方法:的三种方法:选择选择View主菜单下的主菜单下的ClassWizard菜单项菜单项直接按直接按Ctrl+W快捷键快捷键当代码编辑窗口中有打开的文件时,可单击鼠当代码编辑窗口中有打开的文件时,可
7、单击鼠标 右 键,在 弹 出 的 快 捷 菜 单 中 选 择标 右 键,在 弹 出 的 快 捷 菜 单 中 选 择“ClassWizard”菜单项菜单项Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境12 Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境131.消息映射消息映射 Message Maps用于管理消息和成员函数之用于管理消息和成员函数之间的连接。其中的选项可以让用户添加消息响应函间的连接。其中的选项可以让用户添加消息响应函数、删除成员函数以及对成员函数进行编辑等。数、删除成员函数以
8、及对成员函数进行编辑等。各选项的功能如下各选项的功能如下:Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境14 指出当前工程名称指出当前工程名称显示当前的类名,要将消息处理函数映射为哪显示当前的类名,要将消息处理函数映射为哪个类的成员函数,就在这里选择哪个类个类的成员函数,就在这里选择哪个类表示当前所表示当前所选中对象的选中对象的IDID号,包括号,包括能产生消息能产生消息的菜单项、的菜单项、对话框控件对话框控件。表中的首。表中的首项总是当前项总是当前的类名的类名消息列表消息列表列出当前类中已包含的成员函数。列出当前类中已包含的成员函数。V V
9、表表示是虚函数,示是虚函数,W W表示是表示是WindowsWindows的消息的消息响应函数响应函数添加新类添加新类添加消息添加消息响应函数响应函数删除删除Member functions列表框中列表框中所选中的所选中的函数函数打开打开Member functions框中所选中的函数并进行框中所选中的函数并进行编辑编辑Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境152.2.为项目添加新类为项目添加新类 单击单击Add ClassAdd Class按钮会出现一个弹出式菜单,选择按钮会出现一个弹出式菜单,选择NewNew菜单项打开菜单项打开N
10、ew ClassNew Class对话框对话框.输入新类输入新类的类名的类名 选择一个选择一个MFC类作类作为新类的为新类的基类基类显示定义新类的显示定义新类的文件名,可以通文件名,可以通过过Change按钮修按钮修改默认的文件名改默认的文件名对于基于对话框的类,可从对于基于对话框的类,可从Dialog ID下拉框中选择一个下拉框中选择一个对话框资源模板对话框资源模板Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境161.3 1.3 项目与项目工作区项目与项目工作区 在在Visual C+Visual C+集成开发环境中,把实现程序设计功集成开
11、发环境中,把实现程序设计功能的一组相互关联的能的一组相互关联的C+C+源文件、资源文件以及支撑这源文件、资源文件以及支撑这些文件的类的集合称为一个些文件的类的集合称为一个项目项目。项目项目是是Visual C+IDEVisual C+IDE开发程序的基本单位。开发程序的基本单位。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境17 Visual C+IDE Visual C+IDE以以项目工作区项目工作区来组织应用程序的来组织应用程序的项目项目。项目工作区含有工作区的定义和工程中所包含。项目工作区含有工作区的定义和工程中所包含文件的所有信息。文
12、件的所有信息。项 目 工 作 区 窗 格 一 般 位 于 屏 幕 左 侧,包 含项 目 工 作 区 窗 格 一 般 位 于 屏 幕 左 侧,包 含ClassView(ClassView(类视图)、类视图)、ResourceView(ResourceView(资源视图)及资源视图)及FileView(FileView(文件视图)文件视图)3 3种视图。种视图。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境181、ClassView 用于显示项目中包含的类用于显示项目中包含的类。展开文件夹将显示项。展开文件夹将显示项目中所有的类,包括系统生成的和
13、用户自定义的。目中所有的类,包括系统生成的和用户自定义的。图标 含义 类 公有成员函数 私有成员函数 保护成员函数 公有数据成员 私有数据成员 保护数据成员 Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境192、ResourceView 用于显示项目中所包含的资源用于显示项目中所包含的资源。展开文件夹可显。展开文件夹可显示所有的资源类型。示所有的资源类型。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境203、FileView 用于显示项目中所包含的文件用于显示项目中所包含的文件。展开文件。展
14、开文件夹后可以看到项目中所包含的文件。夹后可以看到项目中所包含的文件。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境211.4 集成开发环境的菜单栏集成开发环境的菜单栏 Visual C+IDE中的菜单栏由中的菜单栏由File、Edit、View、Insert、Project、Build、Tools、Window和和Help 9个个主菜单组成。主菜单组成。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境221.4.1 File菜单菜单 主要包括一些与文件有关的操作命令。主要包括一些与文件有关的
15、操作命令。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境231.4.2 Edit菜单菜单 主要包括一些与文件编辑有关的操作命令,它的作主要包括一些与文件编辑有关的操作命令,它的作用在于为用户提供了一种编辑当前打开文件的手段。用在于为用户提供了一种编辑当前打开文件的手段。在指定位置设定断点 Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境241.4.3 View菜单菜单 用于改变窗口的显示方式和激活指定的窗口。用于改变窗口的显示方式和激活指定的窗口。Visual C+程序设计与应用教程9-Aug
16、-22第第1章章 Visual C+开发环境开发环境251.4.4 Insert菜单菜单 包括一些与添加有关的操作命令,用于向工程包括一些与添加有关的操作命令,用于向工程中插入类、资源、对象等。中插入类、资源、对象等。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境261.4.5 Project菜单菜单 包括一些与工程管理有关的操作命令。包括一些与工程管理有关的操作命令。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境271.4.6 Build菜单菜单 包括一些与建立可执行程序有关的操作命令,包
17、括一些与建立可执行程序有关的操作命令,提供编译、链接、调试等功能。提供编译、链接、调试等功能。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境281.4.7 Tools菜单菜单 用于启动用于启动Visual StudioVisual Studio实用工具和定制实用工具和定制Visual C+IDEVisual C+IDE界面。界面。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境291.4.8 Window菜单菜单 包括一些与窗口显示有关的操作命令。包括一些与窗口显示有关的操作命令。Visual
18、 C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境301.4.9 Help菜单菜单 包括有关包括有关Visual C+Visual C+帮助的操作命令。帮助的操作命令。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境311.5 集成开发环境的工具栏集成开发环境的工具栏 Visual C+IDE的工具栏以停靠窗口的形式出现,的工具栏以停靠窗口的形式出现,工具栏的位置可以通过鼠标拖曳的方法来改变,并可工具栏的位置可以通过鼠标拖曳的方法来改变,并可以根据需要在显示与隐藏之间进行切换。以根据需要在显示与隐藏之间进行切
19、换。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境32 执行执行ToolsTools菜单中的菜单中的CustomizeCustomize菜单命令,打开菜单命令,打开CustomizeCustomize对话框,然后单击对话框,然后单击ToolbarsToolbars标签,并根据需标签,并根据需要在要在ToolbarsToolbars列表中选择要放到工具栏上的按钮图标。列表中选择要放到工具栏上的按钮图标。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境33 还可以在菜单栏或工具栏的空白处单击鼠标右
20、键,还可以在菜单栏或工具栏的空白处单击鼠标右键,然后在一个弹出式菜单中选择要显示或隐藏的工具。然后在一个弹出式菜单中选择要显示或隐藏的工具。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境341.5.1 Standard工具栏工具栏 StandardStandard工具栏中包括一些与文件和编辑有关的常用工具栏中包括一些与文件和编辑有关的常用操作命令,每个按钮的功能与文件操作命令,每个按钮的功能与文件(File)(File)、编辑、编辑(Edit)(Edit)和查和查看看(View)(View)等主菜单中的某个菜单项对应。等主菜单中的某个菜单项对
21、应。New Text File Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境351.5.2 Build MiniBar工具栏工具栏 包括了工程的选择、编译、链接和调试等操作包括了工程的选择、编译、链接和调试等操作命令,每个按钮的功能与编译和调试菜单中某个菜命令,每个按钮的功能与编译和调试菜单中某个菜单项对应。单项对应。Execute、Go、Insert/Remove Breakpoint Compile、Build、Stop BuildVisual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境361.
22、5.3 WizardBar工具栏工具栏 对对ClassViewClassView和和ClassWizardClassWizard中的命令进行快速访中的命令进行快速访问,使类和成员函数的操作更加方便。问,使类和成员函数的操作更加方便。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境371.6 资源与资源编辑器资源与资源编辑器 Windows资源用于创建程序的框架界面,包括快资源用于创建程序的框架界面,包括快捷键捷键(Accelerator)、位图、位图(Bitmap)、光标、光标(Cursor)、对、对话框话框(Dialog)、图标、图标(Ico
23、n)、菜单、菜单(Menu)、串表、串表(String Table)、工具栏、工具栏(Toolbar)和版本信息和版本信息(Version)等。等。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境381.6.1 1.6.1 资源和资源符号资源和资源符号 Visual C+Visual C+在内部使用资源符号来标识资源。每当创在内部使用资源符号来标识资源。每当创建一个新的资源或资源对象时,系统就会为其提供一个默建一个新的资源或资源对象时,系统就会为其提供一个默认的资源符号名称并赋予一个整数值。认的资源符号名称并赋予一个整数值。在同一项目中,资源符
24、号不能重复。在同一项目中,资源符号不能重复。资源符号的命名通常用带有描述性的前缀来表示所代资源符号的命名通常用带有描述性的前缀来表示所代表的资源,如下表所示。表的资源,如下表所示。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境39Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境40某应用程序中定义的资源。被保存在某应用程序中定义的资源。被保存在resource.hresource.h文件中。文件中。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环
25、境411.6.2 资源编辑器资源编辑器 在在WindowsWindows环境下,资源是独立于程序源代码的,根环境下,资源是独立于程序源代码的,根据不同资源的特点,据不同资源的特点,Visual C+Visual C+提供了不同的可视化资提供了不同的可视化资源编辑器。创建或打开资源时,系统将自动打开相应的源编辑器。创建或打开资源时,系统将自动打开相应的编辑器。编辑器。1.1.创建资源创建资源 通过在通过在InsertInsert菜单菜单中中选择选择ResourceResource菜单项来创建新菜单项来创建新的资源。的资源。单击单击ResourceResource菜单项,弹出菜单项,弹出Inser
26、t ResourceInsert Resource对话框对话框,如下图所示。如下图所示。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境42 资源类型 新建资源 导入资源 Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境432 2编辑资源编辑资源 通过项目工作区窗口的通过项目工作区窗口的ResourceViewResourceView视图视图来查看资来查看资源。在窗口中双击要查看的资源,即可打开相应的资源源。在窗口中双击要查看的资源,即可打开相应的资源编辑器。编辑器。使用资源编辑器可以查看资源,
27、使用资源模板,导使用资源编辑器可以查看资源,使用资源模板,导入、导出资源以及查看、设置资源的属性。入、导出资源以及查看、设置资源的属性。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境44(1)(1)图形编辑器图形编辑器 主要用于绘制位图、图标、光标和工具条。主要用于绘制位图、图标、光标和工具条。双击双击ResourceViewResourceView视图中的视图中的IconIcon图标资源或图标资源或BitmapBitmap位图资源,打开图形编辑器,如下图所示。位图资源,打开图形编辑器,如下图所示。Visual C+程序设计与应用教程9-Au
28、g-22第第1章章 Visual C+开发环境开发环境45选择图标大小规格选择图标大小规格实际实际图形图形放大放大图形图形图形工图形工具栏具栏颜色工颜色工具栏具栏Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境46(2)(2)串表串表(String Table)(String Table)编辑器编辑器 运行一个运行一个WindowsWindows应用程序后,当鼠标指向菜单项和应用程序后,当鼠标指向菜单项和工具栏按钮时,在底部状态栏将显示所指项的有关提示工具栏按钮时,在底部状态栏将显示所指项的有关提示信息,串表就是这样一种资源字符串。信息,串表就
29、是这样一种资源字符串。使用串表编辑器可以对串表进行增加、删除及编辑使用串表编辑器可以对串表进行增加、删除及编辑等操作,如下图所示。等操作,如下图所示。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境47 双击某项 编辑串表 串表属性 对话框 双击空白 添加串表 Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境48(3)(3)版本版本(Version)(Version)编辑器编辑器 版本信息包括公司和产品的信息、语言、序列号、版本信息包括公司和产品的信息、语言、序列号、产品的操作系统、版权号和商标
30、的声明。产品的操作系统、版权号和商标的声明。版本编辑器用于编辑上述信息,如下图所示。版本编辑器用于编辑上述信息,如下图所示。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境49 Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境50【例【例1.21.2】完善例】完善例1.11.1中的应用程序中的应用程序Li1_1Li1_1,使用资源编辑器,使用资源编辑器编辑图标、串表和版本信息。(编辑图标、串表和版本信息。(结果如下图所示结果如下图所示)Visual C+程序设计与应用教程9-Aug-22第第1章
31、章 Visual C+开发环境开发环境51第第 2 2 章章 MFCMFC应用程序概述应用程序概述 2.1 Windows应用程序概述 2.2 MFC应用程序框架 2.3 消息映射与消息处理 2.4 程序调试 2.5 应用实例Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境522.1 Windows应用程序概述应用程序概述 Windows Windows应用程序运行于应用程序运行于WindowsWindows操作系统上,操作系统上,与与DOSDOS应用程序有着本质的区别。应用程序有着本质的区别。所有的所有的WindowsWindows应用程序都
32、是由消息驱动的,消应用程序都是由消息驱动的,消息处理是所有息处理是所有WindowsWindows应用程序的核心。应用程序的核心。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境532.1.1 2.1.1 窗口窗口 窗口是用户界面中最重要的部分。它是屏幕窗口是用户界面中最重要的部分。它是屏幕上与一个应用程序相对应的矩形区域,是上与一个应用程序相对应的矩形区域,是用户与用户与产生该窗口的应用程序之间的可视界面产生该窗口的应用程序之间的可视界面。标题栏 菜单栏 编辑区 垂直滚动条 水平滚动条 最小化按钮 最大化按钮 关闭按钮 Visual C+程序
33、设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境542.1.2 消息和事件消息和事件 Windows是一个基于事件的消息驱动系统,是一个基于事件的消息驱动系统,Windows应用程序是按照应用程序是按照“事件事件消息消息处理处理”非顺序非顺序的机制运行的。的机制运行的。所谓所谓消息消息,就是用于描述某个事件发生的信息,而,就是用于描述某个事件发生的信息,而事件是对于事件是对于Windows的某种操作。事件是因,消息是果,的某种操作。事件是因,消息是果,事件产生消息,消息对应事件。事件产生消息,消息对应事件。所谓所谓消息的处理消息的处理,其实质就是事件的处理。当有某,
34、其实质就是事件的处理。当有某个事件个事件(如单击鼠标、键盘输入和执行菜单命令等如单击鼠标、键盘输入和执行菜单命令等)发生时,发生时,Windows会根据具体的事件产生对应的消息,并发送到会根据具体的事件产生对应的消息,并发送到指定应用程序的消息队列。应用程序从消息队列中取出消指定应用程序的消息队列。应用程序从消息队列中取出消息,并根据不同的消息进行不同的处理。息,并根据不同的消息进行不同的处理。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境552.1.3 基本数据类型基本数据类型 Windows编程中常用的基本数据类型的别名。编程中常用的基本
35、数据类型的别名。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境56Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境572.1.4 句柄句柄 句柄是句柄是Windows编程的基础,所谓编程的基础,所谓句柄句柄就是就是Windows使用的一种无重复整数。使用的一种无重复整数。句柄主要用来标识应用程序中的一个对象,如窗口、句柄主要用来标识应用程序中的一个对象,如窗口、实例、菜单、内存、输出设备、控制或文件等。实例、菜单、内存、输出设备、控制或文件等。Windows常见的公用句柄类型如下表所示:常见的
36、公用句柄类型如下表所示:Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境58Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境59由于对应的由于对应的MFCMFC类已对句柄进行类已对句柄进行了封装,大多数了封装,大多数情况下不再需要情况下不再需要访问句柄。访问句柄。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境602.2 MFC2.2 MFC应用程序框架应用程序框架 下面通过一个实例介绍利用下面通过一个实例介绍利用MFC AppWizardexe
37、创建应用程序框架的步骤。创建应用程序框架的步骤。2.2.1 创建创建MFC应用程序框架应用程序框架 Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境61【例【例2.12.1】编写一个】编写一个SDISDI单文档应用程序单文档应用程序Li2_1Li2_1,程序运行后,程序运行后,通过消息框输出通过消息框输出“这是一个单文档应用程序!这是一个单文档应用程序!”的提示信息。的提示信息。(1)选择File菜单下的New菜单项,系统弹出New对话框。单击单击输入输入工程名保存文件路径默认默认Visual C+程序设计与应用教程9-Aug-22第第1章章
38、Visual C+开发环境开发环境62 单文档界面单文档界面(SDI)(SDI)应用应用程序。应用程序运行时,程序。应用程序运行时,只能打开一个文档。只能打开一个文档。多文档界面多文档界面(MDI)(MDI)应用应用程序。应用程序可以同程序。应用程序可以同时打开多个文档。时打开多个文档。基于对话框的应用程序。基于对话框的应用程序。应用程序将显示一个简应用程序将显示一个简单的对话框来处理用户单的对话框来处理用户的输入,的输入,(2)MFC AppWizard-Step 1(2)MFC AppWizard-Step 1对话框主要用于选择应用程序对话框主要用于选择应用程序类型。类型。AppWizar
39、dAppWizard可以创建可以创建3 3种类型的应用程序框架。种类型的应用程序框架。语言种类语言种类是否支持是否支持文档文档/视图视图结构结构Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境63(3)MFC AppWizard-Step 2 of 6(3)MFC AppWizard-Step 2 of 6对话框中主要用于选择对话框中主要用于选择应用程序所支持数据库方式。应用程序所支持数据库方式。不包含任何数据库支持不包含任何数据库支持包含最低限度的数据库包含最低限度的数据库支持支持创建对应表的一个数据创建对应表的一个数据库类和一个视图类,不库
40、类和一个视图类,不附加标准文件支持附加标准文件支持创建对应表的一个数据创建对应表的一个数据库类和一个视图类,并库类和一个视图类,并附加标准文件支持附加标准文件支持Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境64(4)(4)在在MFC AppWizard-Step 3 of 6MFC AppWizard-Step 3 of 6对话框中选择对话框中选择应用程应用程序所支持的复合文档类型序所支持的复合文档类型。不支持任何复合文档不支持任何复合文档应用程序作为复合文档容器,包含应用程序作为复合文档容器,包含可以链接或嵌入的可以链接或嵌入的Activ
41、eXActiveX对象对象应用程序仅仅可以创建能够嵌入到应用程序仅仅可以创建能够嵌入到其他应用程序中的文档,但是不能其他应用程序中的文档,但是不能作为一个单独运行的应用程序作为一个单独运行的应用程序应用程序可以单独运行,同时也可应用程序可以单独运行,同时也可以作为一个对象嵌入到其他应用程以作为一个对象嵌入到其他应用程序中序中应用程序能够作为容器包含嵌入或应用程序能够作为容器包含嵌入或链接的链接的ActiveXActiveX对象,同时也能够对象,同时也能够作为一个可以嵌入到其他程序中的作为一个可以嵌入到其他程序中的对象对象Visual C+程序设计与应用教程9-Aug-22第第1章章 Visua
42、l C+开发环境开发环境65(5)(5)在在MFC AppWizard-Step 4 of 6MFC AppWizard-Step 4 of 6对话框中设置应用程对话框中设置应用程序的外观特征。序的外观特征。添加工具栏添加工具栏自动生成状态栏自动生成状态栏添加打印和打印预览菜单项添加打印和打印预览菜单项在帮助菜单中自动添加索引和在帮助菜单中自动添加索引和使用帮助菜单项使用帮助菜单项使应用程序的外观呈三维显示使应用程序的外观呈三维显示消息应用程序接口消息应用程序接口应用程序具有应用程序具有TCP/IPTCP/IP通信功能通信功能传统风格工具条传统风格工具条Internet ExplorerInt
43、ernet Explorer风格工具条风格工具条Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境66(6)(6)在在MFC AppWizard-Step 5 of 6MFC AppWizard-Step 5 of 6对话框中设置应用程序对话框中设置应用程序的风格。的风格。创建标准的创建标准的MFCMFC应用程序应用程序创建类似于创建类似于WindowsWindows资源管资源管理器风格的应用程序理器风格的应用程序在生成的程序框架的源文在生成的程序框架的源文件中加入注释件中加入注释不加入注释信息不加入注释信息使用动态链接库使用动态链接库 使用静态
44、链接库使用静态链接库 Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境67(7)(7)在在MFC AppWizard-Step 6 of 6MFC AppWizard-Step 6 of 6对话框中,可以设对话框中,可以设置向导生成的文件名和类名。置向导生成的文件名和类名。设置类名设置类名设置文件名设置文件名Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境68(8)(8)打开项目工作区中的打开项目工作区中的ClassViewClassView类视图,单击类视图,单击CLi2_1ViewCLi2_
45、1View类左边的类左边的“+”+”展开视图类,双击打开展开视图类,双击打开OnDraw()OnDraw()函数,并添加代码。函数,并添加代码。void CLi2_1View:OnDraw(CDC*pDC)CLi2_1Doc*pDoc=GetDocument();ASSERT_VALID(pDoc);/TODO:add draw code for native data hereMessageBox(这是一个单文档应用程序!这是一个单文档应用程序!,消息框消息框,MB_ICONEXCLAMATION|MB_OKCANCEL);Visual C+程序设计与应用教程9-Aug-22第第1章章 Vi
46、sual C+开发环境开发环境69(9)(9)选择选择BuildBuild菜单中的菜单中的Build Li2_1.exeBuild Li2_1.exe菜单项,对工菜单项,对工程进行编译和链接,生成可执行文件。再选择程进行编译和链接,生成可执行文件。再选择BuildBuild菜菜单中的单中的Execute Li2_1.exeExecute Li2_1.exe菜单命令运行程序。菜单命令运行程序。Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境70MFCMFC应用程序框架结构类的继承关系:应用程序框架结构类的继承关系:2.2.2 MFC应用程序框架结
47、构类应用程序框架结构类CCmdTargetCWinThreadCWndCDocumentCDocTemplateCWinAppCViewCFrameWndCMDIChildWndCMDIFrameWndCSingleDocTemplateCMultiDocTemplateCObject Visual C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境711.CObject1.CObject类类 CObjectCObject是是MFCMFC类库的根类,它几乎描述了所有类库的根类,它几乎描述了所有MFCMFC类的一些公共特性,并且给所有由它派生出的类类的一些公共特
48、性,并且给所有由它派生出的类提供了提供了3 3种重要特性种重要特性,即:串行化支持、运行时类信即:串行化支持、运行时类信息支持以及诊断和调试支持。息支持以及诊断和调试支持。2.CCmdTarget2.CCmdTarget类类 命令类命令类CCmdTargetCCmdTarget是是CObjectCObject的子类,它是的子类,它是MFCMFC库中所有具有消息映射属性的类的公共基类。从库中所有具有消息映射属性的类的公共基类。从CCmdTargetCCmdTarget派生的类能在程序运行时动态创建对象派生的类能在程序运行时动态创建对象和处理命令消息。和处理命令消息。Visual C+程序设计与应
49、用教程9-Aug-22第第1章章 Visual C+开发环境开发环境723.CWinApp3.CWinApp类类 应用程序类应用程序类CWinAppCWinApp是是CWinThreadCWinThread的子类,封的子类,封装了初始化、运行、终止应用程序的代码。可以装了初始化、运行、终止应用程序的代码。可以由此派生自己的应用类。由此派生自己的应用类。4.CWnd4.CWnd类类 窗口类窗口类CWndCWnd提供了提供了MFCMFC中所有窗口类的基本中所有窗口类的基本功能。从功能。从CWndCWnd派生的类可以拥有自己的窗口,并派生的类可以拥有自己的窗口,并对它进行控制。对它进行控制。Visu
50、al C+程序设计与应用教程9-Aug-22第第1章章 Visual C+开发环境开发环境735.CFrameWnd5.CFrameWnd类类 CFrameWndCFrameWnd类是类是CWndCWnd类的派生类。它是所有其他类的派生类。它是所有其他框架窗口类的基类,主要用来管理一个窗口。框架窗口类的基类,主要用来管理一个窗口。CFrameWndCFrameWnd类的对象是一个框架窗口,包括边框、类的对象是一个框架窗口,包括边框、标题栏、菜单、最大化按钮、最小化按钮和一个激活标题栏、菜单、最大化按钮、最小化按钮和一个激活的视图。的视图。CFrameWndCFrameWnd类支持单文档界面,对