预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共16页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

零基础学VisualC++ 第2章Windows编程与MFC基础 要想熟练掌握Windows应用程序的开发,首先需要理解Windows平台下程序运行的内部机制。本 章首先将剖析Windows程序的内部运行机制,为读者扫清VC++学习路途中的第一个障碍,而后简单 介绍一下MFC的基础知识,为进一步学习MFC程序开发打下基础。 2.1Windows编程基础 Windows操作系统采用了图形用户界面,借助于它提供的API(ApplicationProgramming Interface)函数,用户可以编出具有漂亮图形界面的程序。本节将主要介绍一下涉及Windows编程中 用到的一些概念。 2.1.1WindowsAPI函数 为方便用户开发Windows应用程序,Windows操作系统提供了各种各样的函数。这些函数是 Windows操作系统提供给应用程序编程的接口(ApplicationProgrammingInterface),简称为API函数。 用户在编写Windows程序时所说的API函数,就是指系统提供的函数,所有主要的Windows函数都在 “Windows.h”头文件中进行了声明。 WindowsAPI也是Windows操作系统自带的在Windows环境下运行的软件开发包(SDK)。程序员 总是直接或间接引用API进行应用程序的开发,所以Windows应用程序就有大致相同的用户界面。 SDK的全称是SoftwareDevelopmentKit,中文译为软件开发包。假如现在需要开发视频会议系 统,在购买视频数据采集卡时,厂商就会提供频数据采集卡的SDK开发包,以方便对频数据采 说明 集卡的编程操作。这个开发包通常都会包含频数据采集卡的API函数库、帮助文档、使用手册 和辅助工具等资源。也就是说,SDK实际上就是开发所需资源的一个集合。 2.1.2窗口与句柄 窗口是Windows应用程序中一个非常重要的元素,它是Windows应用程序与用户进行交互的接口。 一个Windows应用程序至少要有一个窗口,称为主窗口。通过窗口,可以接收用户的输入,并显示输出。 一个应用程序窗口通常都包含标题栏、菜单栏、系统菜单、最小(大)化按钮、边框和滚动条等。 窗口可以分为客户区和非客户区。客户区是窗口的一部分,应用程序通常在客户区中显示文字或者绘 制图形。标题栏、菜单栏、系统菜单、最小(大)化按钮和边框统称为窗口的非客户区,它们由 Windows系统来管理,而应用程序则主要管理客户区的外观及操作。 在Windows应用程序中,窗口是通过窗口句柄(HWND)来标识的。要对某个窗口进行操作,首 先就要得到这个窗口的句柄。句柄(HANDLE)是Windows程序中一个重要的概念。在Windows程序 中,有各种各样的资源(窗口、图标和光标等),系统在创建这些资源时会为它们分配内存,并返回 励志照亮人生编程改变命运 30 第3章Windows编程与MFC基础 标识这些资源的标识号,即句柄。 Windows中,常用句柄类型及其说明如表2.1所示。 表2.1常用句柄类型及其说明 句柄说明句柄说明 HWND窗口句柄HDC设备环境句柄 HBITMAP位图句柄HCURSOR光标句柄 HICON图标句柄HFONT字体句柄 HMENU菜单句柄HPEN画笔句柄 HFILE文件句柄HBRUSH画刷句柄 HINSTANCE当前实例句柄HLOCAL局部内存对象句柄 HGLOBAL全局内存对象句柄 2.1.3事件与消息 Windows程序采用的是事件驱动方式的程序设计模式,其操作主要是基于消息的。在应用程序启 动后,系统等待用户在图形用户界面内的输入选择, 如鼠标按键、键盘按键、窗口被创建、关闭、改变事件应用程序 键盘消息 大小和移动等,对系统而言,这些都是事件。消 Windows鼠标消息息提取消息 只要有事件发生,系统即产生特定的消息。消息系统其他消息队 列 描述了事件的类别,包含了相关信息,Windows应用处理消息 程序利用消息与系统及其他应用程序进行信息交换。 由于Windows事件的发生是随机的,程序的执 图2.1事件与消息处理 行先后顺序也无法预测,系统采用消息队列来存放 事件发生的消息,然后从消息队列中依次取出消息进行相应的处理,可表示为如图2.1所示。 2.1.4常用的Windows数据类型 Windows应用程序中常用的数据类型如表2.2所示。 表2.2Windows应用程序常用的数据类型 数据类型说明 BYTE8位无符号字符 PSTR32位字符指针 COLORREF32位整数,表示一个颜色 WORD16位无符号整数 LONG32位有符号整数 DWORD32位无符号整数,是WORD的两倍长度 UINT32位无符号整数