鼠标消息
————————————————————————
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位表示客户区纵向尺寸

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

被折叠的 条评论
为什么被折叠?



