1、键盘消息
键盘会产生如下两种消息
1、按键消息
消息分类:
WM_KEYDOWN
WM_KEYUP
WM_SYSKEYDOWN 系统按键按下时产生,如ALT F10
WM_SYSKEYUP
参数
WPARAM 按键的vritual key
LPARAM 按键的参数,比如按下几次
2、字符消息
WM_CHAR :是由WM_KEYDOWN消息Translate()之后产生的,然后再发送给窗口过程。
TranslateMessage 将虚拟键消息转换为字符消息。字符消息被送到调用进程的消息队列中,在下一次进程调用函数GetMessage或PeekMessage时被读出。
实例:

2、鼠标消息
1、消息分类
- 基本消息
WM_LBUTTONNDOWN
WM_LBUTTONUP
WM_RBUTTONDOWN
WM_RBUTTONUP
WM_MOUSEMOVE
- 双击消息
WM_LBUTTONDBLCLK
WM_RBUTTONDBLCLK
消息顺序:
WM_LBUTTONNDOWN
WM_LBUTTONUP
WM_LBUTTONDBLCLK
WM_LBUTTONUP
注意:注册窗口类是 CS_DBLCLKS 风格
附带消息
WPARAM 其他按键状态 如ctrl/shift
LPARAM 点击坐标 LOWORD x HIWORD y
- 滚轮消息
WM_MOUSEWHEEL
附带消息
WPARAM LOWORD 其他按键状态 如ctrl/shift HIWORD 滚轮偏移量
LPARAM 点击坐标 (屏幕坐标系) LOWORD x HIWORD y
定时器消息
本质时:GetMeaasge产生
- 消息类型
WM_TIMER
附带消息
WPARAM 定时器ID
LPARAM 定时器处理函数的指针
- 创建定时器
SetTimer(
HWND, //捕获该定时消息的窗口句柄
UINT, //定时器的id
UINT, //以毫秒为单位的定时长度
TIMERPROC); //定时器处理函数指针(一般为NULL)
- 销毁定时器
KillTimer(
hWnd: HWND; {与定时器相关联的窗口句柄}
uIDEvent: UINT {定时器标识符}
): BOOL;
自定义定时器处理函数
VOID CALLBACK TimerProc(
HWND hWnd, // 消息时间函数的句柄
UINT message, // WM_TIMER 消息
UINT_PTR itimer, // 定时器标识符
DWORD dwTime); //从系统开始运行到现在所经过的毫秒数。该值由getTickCount函数返回。