mouse_event 函数 (winuser.h)

mouse_event 函数合成鼠标运动和按钮单击。

注释 此函数已被取代。 请改用 SendInput
 

语法

void mouse_event(
  [in] DWORD     dwFlags,
  [in] DWORD     dx,
  [in] DWORD     dy,
  [in] DWORD     dwData,
  [in] ULONG_PTR dwExtraInfo
);

参数

[in] dwFlags

类型:DWORD

控制鼠标运动和按钮单击的各个方面。 此参数可以是以下值的某些组合。

价值 意义
MOUSEEVENTF_ABSOLUTE
0x8000
dxdy 参数包含规范化绝对坐标。 如果未设置,则这些参数包含相对数据:自上次报告位置以来的位置更改。 无论哪种类型的鼠标或类似鼠标的设备(如果有)都连接到系统,都可以设置或设置此标志。 有关相对鼠标运动的详细信息,请参阅以下“备注”部分。
MOUSEEVENTF_LEFTDOWN
0x0002
左侧按钮已关闭。
MOUSEEVENTF_LEFTUP
0x0004
左侧按钮已启动。
MOUSEEVENTF_MIDDLEDOWN
0x0020
中间按钮已关闭。
MOUSEEVENTF_MIDDLEUP
0x0040
中间按钮已启动。
MOUSEEVENTF_MOVE
0x0001
发生移动。
MOUSEEVENTF_RIGHTDOWN
0x0008
右侧按钮已关闭。
MOUSEEVENTF_RIGHTUP
0x0010
右侧按钮已启动。
MOUSEEVENTF_WHEEL
0x0800
如果鼠标有滚轮,滚轮已被移动。 移动量在 dwData 中指定
MOUSEEVENTF_XDOWN
0x0080
按下了 X 按钮。
MOUSEEVENTF_XUP
0x0100
已释放 X 按钮。
MOUSEEVENTF_WHEEL
0x0800
滚轮按钮旋转。
MOUSEEVENTF_HWHEEL
0x01000
滚轮按钮倾斜。
 

指定鼠标按钮状态的值设置为指示状态更改,而不是正在进行的条件。 例如,如果按下并按住鼠标左键,则首次按下左键时设置 MOUSEEVENTF_LEFTDOWN,但对于后续动作则不设置。 同样,仅在首次释放按钮时设置 MOUSEEVENTF_LEFTUP

不能同时在 dwFlags 参数中同时指定 MOUSEEVENTF_WHEELMOUSEEVENTF_XDOWNMOUSEEVENTF_XUP,因为它们都需要使用 dwData 字段。

[in] dx

类型:DWORD

根据 MOUSEEVENTF_ABSOLUTE的设置,鼠标沿 x 轴的绝对位置或其自上次生成鼠标事件以来的运动量。 绝对数据被指定为鼠标的实际 x 坐标;相对数据被指定为移动的米奇数。 米奇 是鼠标必须移动的量,以便报告它已移动。

[in] dy

类型:DWORD

根据 MOUSEEVENTF_ABSOLUTE的设置,鼠标的绝对位置沿 y 轴或其运动量自上次生成鼠标事件以来的动作量。 绝对数据被指定为鼠标的实际 y 坐标;相对数据被指定为移动的米奇数。

[in] dwData

类型:DWORD

如果 dwFlags 包含 MOUSEEVENTF_WHEEL,则 dwData 指定方向盘移动量。 正值表示方向盘向前旋转,远离用户;负值指示方向盘向后旋转,向用户旋转。 一个方向盘单击定义为 WHEEL_DELTA,即 120。

如果 dwFlags 包含 MOUSEEVENTF_HWHEEL,则 dwData 指定方向盘移动量。 正值表示方向盘向右倾斜;负值表示方向盘向左倾斜。

如果 dwFlags 包含 MOUSEEVENTF_XDOWNMOUSEEVENTF_XUP,则 dwData 指定按下或释放了哪些 X 按钮。 此值可以是以下标志的任意组合。

如果未 MOUSEEVENTF_WHEELMOUSEEVENTF_XDOWNMOUSEEVENTF_XUPdwFlag s,则 dwData 应为零。

价值 意义
XBUTTON1
0x0001
设置是否按下或释放了第一个 X 按钮。
XBUTTON2
0x0002
设置第二个 X 按钮被按下或释放。

[in] dwExtraInfo

类型:ULONG_PTR

与鼠标事件关联的附加值。 应用程序调用 GetMessageExtraInfo 以获取此额外信息。

返回值

没有

言论

如果鼠标已移动(由设置 MOUSEEVENTF_MOVE 指示)dxdy 保存有关该运动的信息。 信息指定为绝对或相对整数值。

如果指定了 MOUSEEVENTF_ABSOLUTE 值,则 dxdy 包含 0 到 65,535 之间的规范化绝对坐标。 事件过程将这些坐标映射到显示图面。 坐标(0,0)映射到显示图面左上角,(65535,65535)映射到右下角。

如果未指定 MOUSEEVENTF_ABSOLUTE 值,则 dxdy 指定生成最后一个鼠标事件(上一个报告位置)时的相对运动。 正值表示鼠标向右移动(或向下):负值表示鼠标向左移动(或向上移动)。

相对鼠标运动受鼠标速度和加速级别的设置的约束。 最终用户在控制面板中使用鼠标应用程序设置这些值。 应用程序使用 SystemParametersInfo 函数获取和设置这些值。

应用加速时,系统将两个测试应用于指定的相对鼠标运动。 如果沿 x 轴或 y 轴的指定距离大于第一个鼠标阈值,并且鼠标加速级别不为零,则作系统将距离加倍。 如果沿 x 轴或 y 轴的指定距离大于第二个鼠标阈值,并且鼠标加速级别等于 2,则作系统会将应用第一个阈值测试产生的距离加倍。 因此,作系统可以将相对指定的鼠标运动沿 x 轴或 y 轴乘以最多四倍。

应用加速后,系统会按所需的鼠标速度缩放生成的值。 鼠标速度可以介于 1(最慢)到 20(最快)的范围内,并表示指针根据鼠标移动的距离移动多少。 默认值为 10,这不会对鼠标运动进行其他修改。

mouse_event 函数用于按需要这样做的应用程序合成鼠标事件。 它还供需要从鼠标获取更多信息的应用程序使用,而不是其位置和按钮状态。 例如,如果平板电脑制造商想要将基于笔的信息传递给自己的应用程序,它可以编写一个 DLL,该 DLL 直接与平板电脑硬件通信,获取额外的信息,并将其保存在队列中。 然后,DLL 使用标准按钮和 x/y 位置数据以及 dwExtraInfo 参数中的mouse_event 调用某些指针或索引,指向排队的额外信息。 当应用程序需要额外信息时,它会使用存储在 dwExtraInfo中的指针或索引调用 DLL,DLL 返回额外的信息。

要求

要求 价值
最低支持的客户端 Windows 2000 Professional [仅限桌面应用]
支持的最低服务器 Windows 2000 Server [仅限桌面应用]
目标平台 窗户
标头 winuser.h (包括 Windows.h)
User32.lib
DLL User32.dll

另请参阅

概念

GetMessageExtraInfo

鼠标输入

其他资源

参考

SystemParametersInfo