1. Windows API函数根据功能大体可以分为以下三大类型
- 窗口管理函数:实现窗口创建、移动和修改等功能;
- 图形设备函数:又称图形设备接口,实现图形的绘制及操作功能;
- 系统服务函数:实现与操作系统有关的一些功能。
2. 句柄:在Windows应用程序中除了普通变量之外的诸如窗口、按钮、滚动条等复杂的程序对象和实例的标识。不同Windows对象具有不同的类型,常用句柄类型见下表1。
表1:常用的句柄类型
句柄类型
说明
句柄类型
说明HWND
窗口句柄
HDC
图形设备环境句柄
HINSTANCE
当前程序应用实例句柄
HBITMAP
位图句柄
HCURSOR
光标句柄
HICON
图标句柄
HFONT
字体句柄
HMENU
菜单句柄
HPEN
画笔句柄
HFILE
文件句柄
HBRUSH
画刷句柄
3. 基本数据类型的别名:为提高程序程序的可读性(凡是Windows自定义数据类型的关键字都要大写)
typedef unsigned long DWORD;
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef float FLOAT;
typedef unsigned int UINT;
typedef int BOOL;
4. 事件与消息:Windows应用程序靠事件触发产生响应,事件由各种信息描述,称为消息,消息结构定义如下:
typedef struct tagMSG
{
HWND hwnd; // 产生消息的窗口句柄
UINT message; // 消息标识码
WPARAM wParam; // 消息的附加信息 1
LPARAM lParam; // 消息的附加信息 2
DWORD time; // 消息进入消息队列的时刻
POINT point; // 表示发送该消息时光标的位置
}
5. 消息循环:系统为每个应用程序都建立了一个叫做消息队列的存储空间,在程序的运行过程中如果发生了一个事件,Windows就会把这个事件对应的消息送入消息队列等待使用;应用程序可以通过调用Windows提供的API函数GetMessage()从消息队列中获取消息,并利用GetMessage()函数的返回值(当获取消息时,该函数返回TRUE,否则返回FALSE)组织一个循环,从而可以不断从消息队列获取消息,一旦获取了一个消息,就把这个消息发送给系统。