VC 第1章VC 编程基础.pdf





《VC 第1章VC 编程基础.pdf》由会员分享,可在线阅读,更多相关《VC 第1章VC 编程基础.pdf(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 本文由b b b y y y 22贡献 p p t 1。第1章 C+编程基础 Vi s u a l C+编程基础 教学目标 了解Wi n d o w s 编程基础 了解 Wi n d o w s 编程基础:消息和事 Wi n d o w s 编程基础:资源管理、设备独立性等概 件、资源管理、设备独立性 等概 念 了解MFC类的基础知识 了解MFC类的基础知识 MFC 熟练掌握用向导建立应用程序框 架 明确MFC应用程序结构 明确MFC应用程序结构 MFC C+程序设计 电子教案程序设计 王明福编 Vi s u a l C+程序设计电子教案王明福编 教学内容 Wi n d o w s 编程概念
2、 1.1 Wi n d o w s 编程概念 MFC基础 1.2 MFC基础 第一个MFC MFC应用程序 1.3 第一个MFC应用程序 1.4 应用程序分析 返 回 Wi n d o w s 编程概念 1.1 Wi n d o w s 编程概念 Wi n d o w s 程序设计是基于事件驱动,程序的运行是由事件的发生来控制 的。消息驱动机制是Wi n d o w s 程序设计的精髓。1.1.1 事件与消息 当用户按下一个键、移动鼠标或单击鼠标按钮时,计算机通知Wi n d o w s 系统已经发生了一个事件,以及事件的种类、发生的时间和发生的位置(如坐标值)。事件以如下三种方式产生:通过输
3、入设备,如键盘和鼠标,产生硬件事件。通过屏幕上可视的对象,如菜单、工具栏按钮、滚动条和对话框上 的控件。来自Wi n d o w s 内部,例如,当一个后面的窗口显示到前面来。Wi n d o w s 消息是在Wi n d o w s.h 文件中用宏定义的常数。消息常数名通常 为WM_XXX,例如,WM_WUIT、WM_CHAR。例如:当用户单击鼠标左键时,将发送WM_LBUTTONDOWN消息,而双击则发送WM_LBUTTONDBLCLK消息。1.1.2 消息驱动 DOS程序是由一系列预先定义好的操作序列的组合,具有一定的开头、中 间过程和结束,也就是程序直接控制程序事件和过程的顺序。它的基
4、本模型 如图1-1(a)所示。事件驱动的程序设计不是由事件的顺序来控制,而是由事件的发生来控 制,而这种事件的发生是随机的、不确定的,并没有预定的顺序。它在程序设计过程中除了完成所需功能之外,更多地考虑了用户的各种 输入,并根据需要设计相应的处理程序。程序开始运行时,处于等待用户输 入事件状态,然后取得事件并作出相应反应,处理完毕又返回并处于等待事 件状态。如图1-1(b)所示。1.1.3 消息响应函数 返 回 消息响应函数是用于处理特定消息的一些代码。例如,当用户点击 某菜单项时,希望程序弹出一个口令对话框,那么,只要在相应的消息处 理函数中编写弹出一个口令对话框的代码。1.1.4 资源管理
5、 程序员设计任何应用程序均将涉及到诸如菜单、对话框、消息框以及 按钮等标准格式数据。Wi n d o w s 将这些数据保存在资源文件中,程序员可 通过编辑工具编辑、修改这些资源文件,使其提供所需的菜单或按钮,并 将其放入设计的程序之中。1.1.5 设备独立性 设备独立性或称设备无关性。在编程时,程序员不必关心诸如打印机、鼠标、键盘、显示器、声卡、显示卡、CDROM等多种设备的类型及其驱动 程序。Wi n d o w s 95/98/2000提供了图形设备接口之类的各种抽象接口,使 得在程序中可以通过调用标准函数与硬件交互,这些函数通过设备环境的 数据结构,由Wi n d o w s 操作系统
6、将其映射到相应的物理设备,而程序员则 无需了解其提供的操作设备的各种指令。返 回p a g e 1 MFC基础 1.2 MFC基础 VC+已集成了MFC库,VC+资源编辑器、Ap p Wz i a r d 和Cl a s s Wi z a r d 明显 降低了应用程序编码的时间。Ap p Wz i a r d 为整个应用程序生成框架代码,同 时Cl a s s Wi z a r d 为消息处理程序生成原型和函数体。1.2.1 MFC类库简介 MFC(Mi c r o s o f t Fo u n d a t i o n Cl a s s)类库是用来编写Wi n d o w s 应用程序的 C+
7、类集,封装了大部分Wi n d o w s API函数,所以使用MFC类库和VC+提 供的高度可视化的应用程序开发工具,使开发变得简单。MFC类库包括COb j e c t 类及其派生类以及其他类。有这样一些重要的类(都 是COb j e c t 的派生类):应用程序类 应用程序类CWi n Ap p。CWn d 类及派生类 CWn d 类及派生类 类及派生类。CDo c u m e n t 及其派生类 CDo c u m e n t 及其派生类 及其派生类。Fi l e Se r v i c e s Gr a p h i c a l Dr a w i n g Gra p h i c a l
8、Dr a w i n g Se r v i c e s。Dr a w i n g。Ob j e c t s。Me n u s。Ob j e c t s。Me n u s ODBC Da t a b a s e 和 DAO Da t a b a s e Su p p o r t。In t e r n e t Se r v i c e s。等等。Ser v i c e s MFC应用程序框架 1.2.2 MFC应用程序框架 在VC+6.0中,MFC Ap p Wi z a r d 能方便地生成应用程序框架,然后在此基 础上进行进一步的编辑工作。MFC Ap p Wi z a r d 生成的应用程序
9、包括这样一 些要素:Wi n Mai n 函数。Wi n d o w s 要求应用程序必须有一个Wi n Ma i n 函数,它隐 Wi n Ma i n 藏在应用程序框架中。应用程序类 应用程序类。也称CMy He l l o Ap p。该类的每一个对象代表一个应用程 序。程序中默认定义一个全局CMy He l l o Ap p 对象,即t h e Ap p。应用程序启动。启动应用程序时,Wi n d o w s 调用应用程序框架内置的 应用程序启动 Wi n Ma i n 函数,Wi n Ma i n 寻找CWi n Ap p 由派生出的全局构造的应用程序对 象。成员函数 CMy He l
10、 l o Ap p:In i t In s t a n c e 成员函数CMy He l l o Ap p:In i t In s t a n c e CMy He l l o Ap p:In i t In s t a n c e。当Wi n Ma i n 函数找到应用程 序对象时,它调用伪成员函数In i t In s t a nc e,这个成员函数调用所需的构造 并显示应用程序的主框架窗口。必须在派生的应用程序类中重载 In i t In s t a n c e,因为CWi n Ap p 基类不知道需要什么样的主框架窗口。成员函数CWi n Ap p:Ru n 成员函数CWi n Ap p
11、:Ru n CWi n Ap p:Ru n。函数Ru n 隐藏在基类中,但是它发送应用程序 的消息到窗口,以保持应用程序的正常运行。在Wi n Ma i n 调用In i t In s t a n c e 之 后,便调用Ru n。CMa i n Fr a m e 类。类CMa i n Fr a m e 的对象代表应用程序的主框架窗口。CMa i nFr a m e 类 当构造函数调用基类CFr a m e Wn d 的成员函数Cr e a t e 时,Wi n d o w s 创建实 际窗口结构,应用程序框架把它连接到C+对象,函数Sh o w Wi n d o w s 和Up d a t e
12、 Wi n d o w 也是基类的成员函数,必须调用它们类显示窗口。文档与视图类 文档与视图类。这一部分比较复杂,会在后面的章节中单独提出详 细讲解。关闭应用程序 关闭应用程序。如果用户通过关闭主框架窗口类关闭应用程序,这 个操作就将激发一系列事件的发生,包括CMa i n Fr a m e 对象的析构、从 Ru n 中退出、从Wi n Ma i n 中退出和CMy He l l o Ap p 对象的折构。返 回 MFC消息映射及处理 1.2.3 MFC消息映射及处理 在MFC中,管理消息的方式是:当发生某一个消息(比如用户移动了鼠标 和按下键盘等)该消息进入消息队列,操作系统根据消息提供的信
13、息决定 由那个应用程序来处理,该应用程序依照一定的方式查找应用程序中各个 类的消息映射(一组宏,这些宏用来确定某个消息及相应的处理程序的对 应关系)找到处理程序,然后由处理程序执行。MFC程序要处理消息的种类如下:Wi n d o w s 消息。以WM_开头,但WM_COMMAND例外。通常由窗口和 视图来处理。由控件和其他子窗口发送给父窗口的WM_COMMAND消息。这些消息 中包括EN_CHANGE通知码。如当用户在编辑框中键入文本或进行修改,就回向系统发送一个带EN_CHANGE通知码的WM_COMMAND消息。来自于用户界面对象的WM_COMMAND消息,如表1-1所示。这些用户 界面
14、对象包括菜单、工具栏按钮和快捷键。系统在处理这些用户界面对象 的消息和前面有所不同,我们来看看标准的处理方式。1.2.4 程序的运行过程p a g e 2 如图1-2所示,当运行用户应用程 序时,程序中的框架首先获得控制权,然后依次执行下述功能:(1)做部分初始化工作。(2)构造应用程序的唯一应用类的对象,构造应用类对象时要调用其构造函数。(3)调用Wi n Ma i n()函数(此函数也隐 藏在应用框架内部)。(4)从Wi n Ma i n()函数返回后,删除应 用程序的唯一应用类的对象,删除时要 调用其析构函数。(5)终止应用程序。(6)进行退出应用程序前的收尾工作,如删除注册的窗口类并释
15、放其内存等。(7)返回 返 回 返 回 第一个MFC MFC应用程序 1.3 第一个MFC应用程序 用VC+编写MFC应用程序,是一种“填空式”的编 程方法,一般有三个步骤:(1)创建工程:用V C+MFC Ap p Wi z a r d C+的MFC Ap p Wi z a r d 生成应用 程序的工程文件,即应用程序的基本框架。(2)可视化设计:用VC+自带的工具软件Wi n z a r d s,制作Wi n d o w s 风格的图形用户界面和各种控件。(3)编写代码:用MFC Cl a s s Wi z a r d 添加消息响应函数,然后VC+提供的文本编辑器和C+程序设计语言在函数
16、中编写代码。1.3.1 My He l l o 应用程序 应用程序 例程My He l l o.e x e 运行结果如下图所示。主窗口显示字符串:“He l l o,我们开始Vi s u a l C+编程了!”。My He l l o 程序由以下两步完成:(1)用VC+6.0的MFC App Wi z a r d,创建应用程序的基本窗口框架。(2)编写显示字符串:“He l l o,我们开始Vi s u a l C+编程了!”的代码。1.3.2 创建工程 (1)启动 启动VC+,从“Fi l e”菜单中选择“Ne w”;菜单中选择“,菜单中选择;(2)在Ne w 对话框中选择“Pr o j e
17、 c t”标签,选择“MFC Ap p Wi z a r d(e x e)”类 对话框中选择“对话框中选择 标签 选择“类 告诉VC+即将创建一个 即将创建一个EXE程序。程序。型,告诉 即将创建一个 程序(3)在“Pr o j e c t n a m e”文 本 编 辑 框 中 输 入“My He l l o ,单 击 位 于 My He l l o”,框右边的小按钮,“Lo c a t i o n”框右边的小按钮,再从下拉的对话框中选择“D:MYVC”框右边的小按钮 再从下拉的对话框中选择“目录,使新创建的工程文件放置在“目录之下。目录,使新创建的工程文件放置在“D:MYVC”目录之下。目
18、录之下 程序的工程类型、(分别指定了My He l l o.e x e 程序的工程类型、工程名字和工程位置)分别指定了 程序的工程类型 工程名字和工程位置)(4)单击“OK”按钮。此时Vi s u a l C+将显示MFC Ap p Wi z a r d-St e p 1对话框。(5)在MFC Ap p Wi z a r d-St e p 1对话框中:Si n g l e Do c u m e n t 选项表示单文档界面,简称SDI,这种类型应用程的主 窗口只能容纳一个文档,如Wi n d o w s 自带的记事本。Mu l t i p l e d o c u m e n t s 选项表示多文
19、档界面,简称MDI,这种类型应用程容 许同时打开多个文档,这些文档可以层叠于主窗口。Mi c r o s o f t Of f i c e 产品 就属于MDI应用程。Di a l o g b a s e d 选项表示生成基于对话框的应用程序。在本例中选择“Si n g l e Do c u m e n t”,创建一个基于单文档界面的应用程序。然后选择资源语言。(6)单击“Fi n i s h”按钮,结束MFC Ap p Wi z a r d 的设计工作,此时Vc+将 显示Ne w Pr o j e c t In f o r m a t i o n 窗口,显示前六步所做的选择的汇总信息。(7)单
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VC 第1章VC 编程基础 编程 基础

限制150内