如何配置鼠标以编程方式增强指针精度 [英] How to configure mouse enhance pointer precision programatically
问题描述
如何在C ++中以编程方式配置鼠标增强指针精度?
我知道有一些有用的命令像SystemParametersInfo,对于速度,...
How to configure mouse enhance pointer precision programatically in C++? I know that have some useful commands like SystemParametersInfo, for speed, ...
int x = 15;
SystemParametersInfo(SPI_SETMOUSESPEED,NULL,reinterpret_cast(x),SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE );
SystemParametersInfo(SPI_SETMOUSESPEED, NULL, reinterpret_cast(x),SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE );
...但我找不到增强精度----
... but I cannot find enhance precision----
推荐答案
根据文档 SystemParametersInfo
函数和 SPI_SETMOUSE
:
设置两个鼠标阈值和鼠标加速度。
pvParam
参数必须指向一个指定这些值的三个整数的数组。有关详细信息,请参见 mouse_event 。
Sets the two mouse threshold values and the mouse acceleration. The
pvParam
parameter must point to an array of three integers that specifies these values. See mouse_event for further information.
因此,您需要一个包含3个值的数组,并且在调用时指定一个指向该数组的指针作为 pvParam
code> SystemParametersInfo 。
So you need an array containing 3 values, and you specify a pointer to that array as the pvParam
parameter when calling SystemParametersInfo
.
由于你关心的是改变加速度(最后一个值),你可能想要保留前两个的当前值,即鼠标阈值。通过使用 SPI_GETMOUSE
标志调用 SystemParametersInfo
以获取这些值,然后修改最后一个(加速度)然后再次调用 SystemParametersInfo
,这次使用 SPI_SETMOUSE
标志。
Since all you care about is changing the acceleration (the last value), you probably want to retain the current values for the first two, the mouse threshold values. Do that by calling SystemParametersInfo
with the SPI_GETMOUSE
flag to obtain those values, then modifying the last one (the acceleration), and then calling SystemParametersInfo
again, this time with the SPI_SETMOUSE
flag.
示例代码(没有建议的错误检查):
Sample code (without recommended error checking):
// 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);
}
你可能已经知道了这一点,在那里,我不提它,以防万一。 如果您在应用中执行此操作,请务必保存原始值,以便在应用关闭时恢复原始值!当您修改系统级设置时,这只是基本礼仪。
And you probably already know this, but there are too many badly-behaved applications out there for me not to mention it just in case. If you're doing this in your application, be sure to save the original value so that you can restore it when your app is closed! This is just basic etiquette when you're modifying system-wide settings.
这篇关于如何配置鼠标以编程方式增强指针精度的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!