【问题标题】:How to configure mouse enhance pointer precision programmatically如何以编程方式配置鼠标提高指针精度
【发布时间】:2011-04-23 13:57:21
【问题描述】:

如何在 C++ 中以编程方式配置鼠标增强指针精度? 我知道有一些有用的命令,比如 SystemParametersInfo,对于速度,...

int x = 15;

SystemParametersInfo(SPI_SETMOUSESPEED, NULL, reinterpret_cast(x),SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE );

...但我找不到增强精度----

【问题讨论】:

    标签: c++ winapi configuration mouse


    【解决方案1】:

    “提高指针精度”是一个开/关加速选项。

    SystemParametersInfo 的SPI_SETMOUSE 参数将调整此设置。

    我不能确切地告诉你加速度值是如何受到影响的,但是如果你 SPI_GETMOUSE 并在打开和关闭设置的情况下显示值,你会发现它。

    【讨论】:

      【解决方案2】:

      This discussion 有更多信息。它有一个宏,似乎可以满足您的需求。转换为 C++ 应该非常简单;这只是几个 DLL 调用。

      【讨论】:

        【解决方案3】:

        根据the documentationSystemParametersInfo函数和SPI_SETMOUSE

        设置两个鼠标阈值和鼠标加速度。 pvParam 参数必须指向指定这些值的三个整数数组。请参阅mouse_event 了解更多信息。

        因此,您需要一个包含 3 个值的数组,并在调用 SystemParametersInfo 时将指向该数组的指针指定为 pvParam 参数。

        由于您只关心更改加速度(最后一个值),您可能希望保留前两个的当前值,即鼠标阈值。通过使用SPI_GETMOUSE 标志调用SystemParametersInfo 来获得这些值,然后修改最后一个(加速度),然后再次调用SystemParametersInfo,这次使用SPI_SETMOUSE 标志。

        示例代码(没有推荐的错误检查):

        // Turns mouse acceleration on/off by calling the SystemParametersInfo function.
        // When mouseAccel is TRUE, mouse acceleration is turned on; FALSE for off.
        void SetMouseAcceleration(BOOL mouseAccel)
        {
            int mouseParams[3];
        
            // Get the current values.
            SystemParametersInfo(SPI_GETMOUSE, 0, mouseParams, 0);
        
            // Modify the acceleration value as directed.
            mouseParams[2] = mouseAccel;
        
            // Update the system setting.
            SystemParametersInfo(SPI_SETMOUSE, 0, mouseParams, SPIF_SENDCHANGE);
        }
        

        而且您可能已经知道这一点,但是那里有太多表现不佳的应用程序,我更不用说以防万一了。 如果您在您的应用程序中执行此操作,请务必保存原始值,以便在您的应用程序关闭时恢复它!这只是您修改系统范围设置时的基本礼仪.

        【讨论】:

        • 有没有人检查过设置阈值是否有任何区别?我确实尝试过修改它们,但我没有注意到光标移动方式有任何变化。
        猜你喜欢
        • 2014-09-04
        • 2013-12-14
        • 1970-01-01
        • 1970-01-01
        • 2014-09-30
        • 2010-11-16
        • 1970-01-01
        相关资源
        最近更新 更多