鱼C论坛

 找回密码
 立即注册
查看: 3432|回复: 0

[API档案] WM_MOUSEMOVE 消息

[复制链接]
发表于 2016-4-14 15:42:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
注:本文档由 百日维新 翻译,小甲鱼校对。

原文链接 -> 传送门

消息含义:

当鼠标移动时,WM_MOUSEMOVE 消息被发送至窗口。如果鼠标没有被捕获,该消息发送到包含鼠标的窗口。如果鼠标被捕获,该消息发送到捕获鼠标的窗口。

窗口通过它的 WindowProc 函数接收消息。


消息定义:
#define WM_MOUSEMOVE                    0x0200

参数解析:

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 按钮被按下


lParam:低位字节表示相对于客户区左上角的 X 坐标;高位字节表示相对于客户区左上角的 Y 坐标。


返回值:

如果应用程序处理这个消息,它应该返回 0。


备注:

1. 使用下面的代码获取鼠标的水平和垂直位置:
xPos = GET_X_LPARAM(lParam); 
yPos = GET_Y_LPARAM(lParam);
2. 如上面所看到的那样,X 坐标在 lParam  参数的低位字节;Y 坐标在 lParam 参数的高位字节(两个都是有符号值,因为在多萤幕系统上它们可以为负值)。如果 lParam 参数赋值给一个变量,您可以使用 MAKEPOINTS 宏把 lParam 参数转成 POINTS 结构。您也可以使用 GET_X_LPARAM 宏或者 GET_Y_LPARAM 宏提取 X 坐标或者 Y 坐标。

重要:不要使用 LOWORD 宏或者 HIWORD 宏提取鼠标位置的 X 和 Y 坐标,因为在多屏幕系统上这些宏返回错误的结果。多屏幕系统的 X ,Y 坐标可以为负值,而 LOWORD 宏和 HIWORD 宏把坐标认为是无符号数值。


需求:

Minimum supported client Windows 2000 专业版 [仅桌面应用程序]
Minimum supported server Windows 2000 服务器版 [仅桌面应用程序]
Header Winuser.h (包含于 Windows.h)


【API档案】版权归鱼C工作室(www.fishc.com)所有,转载请注明来源。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-17 23:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表