mouse_event功能可以合成鼠标移动和按钮点击。
VOID mouse_event(
DWORD 【dwFlags中】, | //指定各种运动/点击变体的标志 |
DWORD 【dx】, | //水平鼠标位置或位置更改 |
DWORD 【dy】, | //垂直鼠标位置或位置更改 |
DWORD 【dwDatacy】, | //车轮运动量 |
DWORD 【dwExtraInfo】 | // 32位应用程序定义的信息 |
); |
参数
【dwFlags中】
一组标志位,指定鼠标运动和按钮点击的各个方面。此参数中的位可以是以下值的任何合理组合:
值 | 含义 |
MOUSEEVENTF_ABSOLUTE | 指定【dx】和【dy】参数包含归一化的绝对坐标。如果未设置,这些参数包含相对数据:自上次报告的位置以来的位置变化。无论什么样的鼠标或类似鼠标的设备连接到系统,都可以设置或不设置该标志。有关相对鼠标移动的更多信息,请参阅以下备注部分。 |
MOUSEEVENTF_MOVE | 指定运动发生。 |
MOUSEEVENTF_LEFTDOWN | 指定左按钮更改为向下。 |
MOUSEEVENTF_LEFTUP | 指定左按钮更改为up。 |
MOUSEEVENTF_RIGHTDOWN | 指定右按钮更改为向下。 |
MOUSEEVENTF_RIGHTUP | 指定右侧按钮更改为up。 |
MOUSEEVENTF_MIDDLEDOWN | 指定中间按钮更改为向下。 |
MOUSEEVENTF_MIDDLEUP | 指定中间按钮更改为up。 |
MOUSEEVENTF_WHEEL | 仅限Windows NT:指定车轮已被移动,如果鼠标有轮子??。移动量在【dwDatacy】中给出 |
指定鼠标按钮状态的标志位设置为指示状态的更改,而不是正在进行的条件。例如,如果按住鼠标左键并按住,则在首次按下左按钮时设置MOUSEEVENTF_LEFTDOWN,但不会进行后续运动。同样,只有当按钮首次被释放时,才设置MOUSEEVENTF_LEFTUP。
【dx】
根据MOUSEEVENTF_ABSOLUTE的设置,指定鼠标沿着x轴的绝对位置或自产生最后一个鼠标事件以来的运动量。绝对数据作为鼠标的实际x坐标给出;相对数据作为移动的米奇数量给出。
【dy】
根据MOUSEEVENTF_ABSOLUTE的设置,指定鼠标沿着y轴的绝对位置或自产生最后一个鼠标事件以来的运动量。绝对数据作为鼠标的实际y坐标给出;相对数据作为移动的米奇数量给出。
【dwDatacy】
如果【dwFlags中】为MOUSEEVENTF_WHEEL,则【dwDatacy】指定车轮移动量。正值表示车轮向前旋转,远离用户;负值表示车轮向后旋转,朝向用户。一轮单击定义为WHEEL_DELTA,即120。
如果【dwFlags中】不是MOUSEEVENTF_WHEEL,则【dwDatacy】应为零。
【dwExtraInfo】
指定与鼠标事件相关联的附加32位值。应用程序调用{??989796106}获取此额外信息。
返回值
该函数没有返回值。
备注
如果鼠标移动,由MOUSEEVENTF_MOVE设置,【dx】和【dy】保存有关该动作的信息。信息作为绝对或相对整数值给出。
如果指定了MOUSEEVENTF_ABSOLUTE值,则【dx】和【dy】包含0和65,535之间的归一化绝对坐标。事件过程将这些坐标映射到显示面上。坐标(0,0)映射到显示面的左上角(65535,65535)映射到右下角。
如果未指定MOUSEEVENTF_ABSOLUTE值,【dx】和【dy】指定生成最后一个鼠标事件(最后报告的位置)的相对运动。正值意味着鼠标向右移动(或向下)移动;负值表示鼠标向左(或向上)移动。
相对鼠标运动受鼠标速度和两个鼠标阈值的影响。在Windows NT中,最终用户使用控制面板鼠标选项的鼠标跟踪速度滑块设置这三个值;在Windows 95中,最终用户使用“控制面板”鼠标属性表的“指针速度”滑块设置它们。应用程序使用SystemParametersInfo函数获取并设置这些值。
操作系统对指定的相对鼠标运动应用两个测试。如果沿x或y轴的指定距离大于第一个鼠标阈值,并且鼠标速度不为零,则操作系统将距离加倍。如果沿x或y轴的指定距离大于第二个鼠标阈值,并且鼠标速度等于2,则操作系统将应用第一个阈值测试所产生的距离加倍。因此,操作系统可以将相对指定的鼠标移动沿x或y轴乘以多达四倍。
mouse_event函数用于通过需要这样做的应用程序来合成鼠标事件。它也被需要从鼠标获取更多信息的应用程序用于其位置和按钮状态。例如,如果平板电脑制造商希望将基于笔的信息传递到自己的应用程序,则它可以编写一个动态链接库(DLL),它直接与平板电脑硬件通信,获取额外的信息,并将其保存在队列中。然后,DLL使用标准按钮和x / y位置数据调用mouse_event,以及【dwExtraInfo】参数中的一些指针或排队的额外信息的索引。当应用程序需要额外的信息时,它将使用存储在【dwExtraInfo】中的指针或索引来调用DLL,并且DLL返回额外的信息。
也可以看看