win 32 常见消息的 lParam 和 wParam 含义

本文详细解析了Windows编程中常见的鼠标和键盘消息,包括WM_LBUTTONDOWN、WM_RBUTTONDOWN、WM_MOUSEMOVE等,重点阐述了lParam和wParam参数的含义,涉及鼠标按键状态、坐标信息以及键盘消息的处理。

鼠标消息

————————————————————————

WM_LBUTTONDOWN、WM_RBUTTONDOWN

WM_LBUTTONDOWN:单击鼠标左键的消息
WM_RBUTTONDOWN:单击鼠标右键的消息

lParam:低字节包含当前光标的X坐标值: LOWORD(lParam)
高字节包含当前光标的Y坐标值: HIWORD(lParam)

wParam:包含一整数值以标识鼠标键的按下状态
MK_LBUTTON 按下鼠标左键
MK_MBUTTON 按下鼠标中键
MK_RBUTTON 按下鼠标右键

相似的消息还有:

lWM_LBUTTONUP:放开鼠标左键时产生;

lWM_RBUTTONUP:放开鼠标右键时产生;

lWM_LBUTTONDBLCLK:双击鼠标左键时产生;

lWM_RBUTTONDBLCLK:双击鼠标右键时产生。

PS:若窗口类样式没有指定为CS_DBLCLKS,系统将双击鼠标视为两次单击.

WM_MOUSEMOVE

lParam:低字节包含当前光标的X坐标值: LOWORD(lParam)
高字节包含当前光标的Y坐标值: HIWORD(lParam)

wParam:该参数告诉你触发该消息时,其他虚拟键是否被按下。
MK_CONTROL(0x0008) CTRL 键被按下
MK_LBUTTON(0x0001) 鼠标左键被按下
MK_MBUTTON(0x0010) 鼠标中键被按下
MK_RBUTTON(0x0002) 鼠标右键被按下
MK_SHIFT(0x0004) SHIFT 键被按下
MK_XBUTTON1(0x0020) 第一个 X 按钮被按下
MK_XBUTTON2(0x0040) 第二个 X 按钮被按下

注意:鼠标按下消息里面的wParam都是MK_XXX 来判断是否有其他键同时按下

WM_HITTEST 集中测试消息

lParam:鼠标位置(这个坐标是基于屏幕的,不是客户区,但是如果点击客户区触发消息,会自动转换为客户区坐标)
wParam:没有使用

键盘消息

——————————————————————————

WM_KEYDOWN

WM_KEYDOWN:按下一个非系统键时产生的消息

wParam:按下键的虚拟键码,用以标识按下或释放的键。

lParam:记录了按键的重复次数、扫描码、转移代码、先前键的状态等信息。

相似的消息还有WM_KEYUP,在放开非系统键时产生

WM_ CHAR

WM_ CHAR:按下一个非系统键时产生的消息

wParam: 为按键的ASCII码

lParam: 记录了按键的重复次数、扫描码、转移代码、先前键的状态等信息。

WM_CREATE

WM_CREATE:由CreateWindow函数发出的消息

wParam:未用

lParam:包含一个指向CREATESTRUCT数据结构(就是创建窗口使用的那些数据组成的CREATESTRUCT结构)的指针

WM_QUIT

WM_QUIT:由PostQuitMessage函数发出的消息
退出应用程序时发出的消息
wParam:含退出代码,标识程序退出运行时的有关信息
lParam:未用

WM_SIZE

WM_SIZE:窗口改变大小信息,窗口大小改变时改变产生此消息

lParam:低16位表示客户区横向尺寸,高16位表示客户区纵向尺寸

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值