Je suis en train d'implémenter la saisie de la souris en utilisant l'entrée brute. L'inconvénient est que le pointeur balistique n'est pas inclus. Malheureusement, le site Web de Microsoft traitant de ce sujet n'est plus en ligne. En outre, je ne trouve pas de fonction permettant de récupérer l'accélération du pointeur dans Windows (peut-être que je suis trop stupide).Entrée brute et accélération du curseur
Comment puis-je obtenir l'accélération et comment l'utiliser pour calculer la nouvelle position intuitive du curseur par rapport au décalage x et y brut?
EDIT:
Donc, en ce qui concerne la documentation IInspectable a écrit dans son commentaire, le code de calcul de l'accélération serait:
long xPos = raw->data.mouse.lLastX;
long yPos = raw->data.mouse.lLastY;
int speed;
int acceleration[3];
SystemParametersInfo(SPI_GETMOUSESPEED, 0, &speed, 0);
SystemParametersInfo(SPI_GETMOUSE, 0, acceleration, 0);
if (acceleration[2] > 0 && acceleration[0] < abs(raw->data.mouse.lLastX))
xPos *= 2;
else if (acceleration[2] > 1 && acceleration[1] < abs(raw->data.mouse.lLastX))
xPos *= 2;
if (acceleration[2] > 0 && acceleration[0] < abs(raw->data.mouse.lLastX))
yPos *= 2;
else if (acceleration[2] > 1 && acceleration[1] < abs(raw->data.mouse.lLastX))
yPos *= 2;
xPos *= round((float)speed/10.0f);
yPos *= round((float)speed/10.0f);
Ai-je raison, est-ce comment ajouter une accélération à la entrée de souris brute? Étrange, c'est que lorsque je récupère l'accélération avec SystemParametersInfo et SPI_GETMOUSE les valeurs restent à {6, 10, 1} même si je change l'accélération du pointeur dans Windows.
Vous interrogez le Accélération de la souris en appelant [SystemParametersInfo] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms724947.aspx) avec un paramètre 'SPI_GETMOUSE'. Des informations sur l'accélération de la souris sont disponibles dans la section * Notes * de la documentation [mouse_event] (https://msdn.microsoft.com/en-us/library/windows/desktop/ms646260.aspx). – IInspectable