Windows 程序设计基础知识总结(一)
一 · 数据类型
1 句柄
句柄(HANDLE),是一个唯一的 PVOID 型数据,4字节长,用于标识应用程序中不同的对象和同类对象中不同的实例。
句柄类型 | 说明 |
---|---|
HWND | 标识窗口 |
HDC | 标识设备环境句柄 |
HINSTANCE | 标识当前实例句柄 |
HBITMAP | 标识位图句柄 |
HCURSOR | 标识光标句柄 |
HICON | 标识图标句柄 |
HFONT | 标识字体句柄 |
HMENU | 标识菜单句柄 |
HPEN | 标识画笔句柄 |
HBRUSH | 标识画刷句柄 |
HFILE | 标识文件句柄 |
2 消息
/*
* Message structure
*/
typedef struct tagMSG {
HWND hwnd; // 用以检索消息的窗口句柄,
// 若此参数为 null ,则可检索所有驻留在消息队列中的消息。
UINT message; // 代表一个消息的消息值,
// 每个 Windows 消息都有一个消息值,该值由 windows.h 头文件中的宏定义来标识
WPARAM wParam;
LPARAM lParam;
// wParam 和 lParam 是包含有关消息的附加信息,它随不同的消息而有所不同。
DWORD time; // 指定消息发送至队列的时间
POINT pt; // 指定消息发送时屏幕光标的位置。
#ifdef _MAC
DWORD lPrivate;
#endif
} MSG, *PMSG, NEAR *NPMSG, FAR *LPMSG;
消息的宏定义的前缀经常用于消息宏识别消息附属的分类,系统定义消息宏前缀如下:
前缀 | 描述 |
---|---|
BM | 标识按钮控件消息 |
CB | 表示组合框空间消息 |
DM | 表示默认下压式按钮控件消息 |
EM | 表示编辑控件消息 |
LB | 表示列表框控件消息 |
SBM | 表示滚动条控件消息 |
WM | 表示窗口消息 |
应用程序自定义的消息可以供内部应用程序和系统内其他进程通信使用。不同类型 Windows 消息的取值范围不同:
消息类型 | 取值范围 |
---|---|
系统定义消息(部分I) | 0x0000 ~ 0x03FF |
用户定义内部消息 | 0x0400 ~ 0x07FF |
系统定义消息(部分II) | 0x8000 ~ 0xBFFF |
用户定义外部消息 | 0xC000 ~ 0xFFFF |
3 Windows 应用程序常用消息
1、 鼠标键消息
消息 | 说明 |
---|---|
WM_LBUTTONDOWN | 单击鼠标左键 |
WM_LBUTTONUP | 放开鼠标左键 |
WM_RBUTTONDOWN | 单击鼠标右键 |
WM_RBUTTONUP | 放开鼠标右键 |
WM_LBUTTONDBLCLK | 双击鼠标左键时产生 |
WM_RBUTTONDBLCLK | 双击鼠标右键时产生 |
附加参数 wParam 标识鼠标键的单击状态。