Как настроить мышь для повышения точности указателя программно

Как настроить мышь для повышения точности указателя программно в C++? Я знаю, что есть некоторые полезные команды, такие как SystemParametersInfo, для скорости,...

int x = 15;

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

... но я не могу найти повышение точности ----

3 ответа

Согласно документации для SystemParametersInfo функция и SPI_SETMOUSE:

Устанавливает два пороговых значения мыши и ускорение мыши. pvParam Параметр должен указывать на массив из трех целых чисел, который определяет эти значения. Смотрите mouse_event для получения дополнительной информации.

Таким образом, вам нужен массив, содержащий 3 значения, и вы указываете указатель на этот массив в качестве pvParam параметр при звонке SystemParametersInfo,

Поскольку все, что вас волнует, - это изменение ускорения (последнее значение), вы, вероятно, захотите сохранить текущие значения для первых двух, пороговые значения мыши. Сделай это, позвонив SystemParametersInfo с SPI_GETMOUSE флаг для получения этих значений, затем изменение последнего (ускорение), а затем вызов 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);
}

И вы, вероятно, уже знаете это, но есть слишком много приложений с плохим поведением, чтобы я не упомянул об этом на всякий случай. Если вы делаете это в своем приложении, обязательно сохраните исходное значение, чтобы вы могли восстановить его, когда ваше приложение закрыто! Это просто базовый этикет, когда вы изменяете общесистемные настройки.

"Повышение точности указателя" - это опция ускорения включения / выключения.

SPI_SETMOUSE Параметр для SystemParametersInfo отрегулирует этот параметр.

Я не могу точно сказать, как влияют значения ускорения, но если вы SPI_GETMOUSE и отобразить значения с включенной и выключенной настройкой, вы найдете ее.

Это обсуждение имеет немного больше информации. У него есть макрос, который, кажется, делает то, что вы ищете. Это должно быть довольно просто конвертировать в C++; это просто пара вызовов DLL.

Другие вопросы по тегам