mouse_event 函数 (winuser.h)
mouse_event 函数合成鼠标运动和按钮单击。
语法
void mouse_event(
[in] DWORD dwFlags,
[in] DWORD dx,
[in] DWORD dy,
[in] DWORD dwData,
[in] ULONG_PTR dwExtraInfo
);
参数
[in] dwFlags
类型:DWORD
控制鼠标运动和按钮单击的各个方面。 此参数可以是以下值的某些组合。
指定鼠标按钮状态的值设置为指示状态的更改,而不是正在进行的条件。 例如,如果按下并按住鼠标左键,则会在首次按下左键时设置 MOUSEEVENTF_LEFTDOWN ,但不设置为后续动作。 同样,仅在首次释放按钮时设置 MOUSEEVENTF_LEFTUP 。
不能在 dwFlags 参数中同时指定 MOUSEEVENTF_WHEEL 和 MOUSEEVENTF_XDOWN 或 MOUSEEVENTF_XUP,因为它们都需要使用 dwData 字段。
[in] dx
类型:DWORD
鼠标沿 x 轴的绝对位置或其自上次生成鼠标事件以来的运动量,具体取决于 MOUSEEVENTF_ABSOLUTE的设置。 绝对数据指定为鼠标的实际 x 坐标;相对数据指定为移动的米奇数。 米奇是鼠标必须移动才能报告其移动的量。
[in] dy
类型:DWORD
鼠标沿 y 轴的绝对位置或其自上次生成鼠标事件以来的运动量,具体取决于 MOUSEEVENTF_ABSOLUTE的设置。 绝对数据指定为鼠标的实际 y 坐标;相对数据指定为移动的米奇数。
[in] dwData
类型:DWORD
如果 dwFlags 包含 MOUSEEVENTF_WHEEL,则 dwData 指定滚轮移动量。 正值表示滚轮向前旋转(远离用户);负值表示滚轮向后旋转(朝向用户)。 一键滚轮定义为 WHEEL_DELTA,即 120。
如果 dwFlags 包含 MOUSEEVENTF_HWHEEL,则 dwData 指定滚轮移动量。 正值表示方向盘向右倾斜;负值表示方向盘向左倾斜。
如果 dwFlags 包含 MOUSEEVENTF_XDOWN 或 MOUSEEVENTF_XUP,则 dwData 指定按下或释放的 X 按钮。 此值可以是以下标志的任意组合。
如果 dwFlags 不是 MOUSEEVENTF_WHEEL、 MOUSEEVENTF_XDOWN或 MOUSEEVENTF_XUP,则 dwData 应为零。
值 | 含义 |
---|---|
|
设置是否按下或释放第一个 X 按钮。 |
|
设置是否按下或释放第二个 X 按钮。 |
[in] dwExtraInfo
类型: ULONG_PTR
与鼠标事件关联的附加值。 应用程序调用 GetMessageExtraInfo 以获取此额外信息。
返回值
无
备注
如果鼠标已移动(由 设置MOUSEEVENTF_MOVE 指示), dx 和 dy 会保存有关该动作的信息。 信息指定为绝对或相对整数值。
如果指定 了MOUSEEVENTF_ABSOLUTE 值, 则 dx 和 dy 包含介于 0 和 65,535 之间的规范化绝对坐标。 事件过程将这些坐标映射到显示图面。 坐标 (0,0) 贴图到显示图面的左上角, (65535,65535) 贴图到右下角。
如果未指定 MOUSEEVENTF_ABSOLUTE 值, dx 和 dy 指定从上次生成鼠标事件 (上次报告位置) 的相对运动。 正值表示鼠标向右移动 (或向下移动) ;负值表示鼠标向左移动 (或向上移动) 。
相对鼠标运动取决于鼠标速度和加速级别的设置。 最终用户在 控制面板 中使用鼠标应用程序设置这些值。 应用程序使用 SystemParametersInfo 函数获取并设置这些值。
应用加速时,系统会对指定的相对鼠标运动应用两个测试。 如果沿 x 轴或 y 轴的指定距离大于第一个鼠标阈值,并且鼠标加速级别不为零,则操作系统会将距离加倍。 如果沿 x 轴或 y 轴的指定距离大于第二个鼠标阈值,并且鼠标加速级别等于 2,则操作系统会将应用第一个阈值测试产生的距离加倍。 因此,操作系统可以沿 x 轴或 y 轴将相对指定的鼠标运动乘以最多四倍。
应用加速后,系统会按所需的鼠标速度缩放结果值。 鼠标速度范围为 1 (最慢) 到 20 (最快) ,并表示指针根据鼠标移动距离移动的距离。 默认值为 10,这不会导致对鼠标运动进行其他修改。
mouse_event 函数用于由需要执行此操作的应用程序合成鼠标事件。 它也由需要从鼠标获取比其位置和按钮状态更多的信息的应用程序使用。 例如,如果平板电脑制造商想要将基于笔的信息传递给自己的应用程序,它可以编写一个 DLL,该 DLL 直接与平板电脑硬件通信,获取额外信息,并将其保存在队列中。 然后,DLL 使用标准按钮和 x/y 位置数据调用 mouse_event ,并在 dwExtraInfo 参数中调用一些指向排队的额外信息的指针或索引。 当应用程序需要额外信息时,它会使用存储在 dwExtraInfo 中的指针或索引调用 DLL,DLL 返回额外信息。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | winuser.h (包括 Windows.h) |
Library | User32.lib |
DLL | User32.dll |
请参阅
概念性
其他资源
引用