Depuis quelques temps maintenant, j'essaie d'écrire un code qui me permette de modifier le comportement de la souris. Je m'explique:
En fait j'utilise une tablette graphique de type Volito (le modèle pas cher de Wacom). Le principe de la tablette, c'est qu'il fait un mapping de la surface de dessin de la tablette sur le bureau Windows. En clair, le point en haut à gauche de la tablette correspond au coin supérieur gauche du bureau, et le coin en bas à droite correspond au coin inférieur droit du bureau de Windows. Ca va très bien dans des conditions normales, mais ça commence à poser problème du moment que l'on utilise 2 moniteurs parce que dans ce cas le mapping fait que chaque écran partage une moitié de la surface de la tablette. Comme la tablette est une A6, ça fait qu'au final il ne reste plus grand chose de place pour dessiner Il y a aussi un autre problème de déformation qui entre en jeu.
En fait, c'est clair que ce serait aux drivers de la tablette de faire le mapping correctement. Mais le fabricant ne souhaite pas ajouter cette option pour ce modèle de tablette prétextant que ça engendrerait des coûts de développement, de tests, de validation, etc. et que ça augmenterait au final le prix de la tablette. D'ailleurs, les autres modèles plus chers du même fabricant supportent l'option, donc ils disent en gros que si on veut l'option, il faut acheter l'autre tablette (gentils les gars, mais ce n'était pas marqué sur le carton que c'était pas fait pour le dual monitor). Bon, donc comme apparemment c'est impossible de leur faire changer d'avis, il ne me reste plus qu'à faire le boulot moi-même.
Voilà pour la petite histoire. Retour à notre problème:
Donc maintenant l'idée c'est d'intercepter la position de la souris et de transformer les coordonnées pour mapper dans la région que l'on veut. J'ai essayé de différentes manières avec les GetCursorPos/SetCursorPos ainsi qu'avec DirectInput, mais je n'arrive jamais à avoir un truc correct. En fait, lorsque j'utilise DirectInput, je me retrouve avec 2 curseurs clignotants à l'écran, ce qui est normal parce que windows reçoit les coordonnées directement de la souris + celles que je transforme après. Donc voilà ma question (ouf, enfin !): est-ce qu'il y a moyen d'empêcher windows de recevoir/mettre à jour la position de la souris ? Question subsidiaire: est-ce que quelqu'un a déjà été confronté à ce problème et a une solution ?
Merci à ceux qui auront eu le courage de me lire jusqu'au bout, ainsi qu'à ceux qui ont une idée de solution