Evenements souris sur le bureau

Chayy Messages postés 4 Date d'inscription dimanche 3 décembre 2000 Statut Membre Dernière intervention 31 mars 2008 - 16 févr. 2008 à 22:13
Chayy Messages postés 4 Date d'inscription dimanche 3 décembre 2000 Statut Membre Dernière intervention 31 mars 2008 - 17 févr. 2008 à 11:41
Bonjour,
je suis entrain de développer un utilitaire dans le cadre d'un projet d'étude, pour cela j'ai choisi d'utiliser Qt.

Jusque la tout va bien sauf une chose, je bloque sur un problème lié au bureau windows. Mon but est de pouvoir capturer les évenements de la souris sur le bureau, pour, suivant la position du pointeur, afficher un menu particulier. En gros, l'utilisateur pourra définir plusieurs zones de son bureau et un menu associé à chaque zone ...

J'ai d'abord essayé d'implémenter ça avec un QdesktopWidget héritant du Qwidget, et en redéfinnissant le QmouseMoveEvent. Ca n'a pas fonctionné car il semblerait que le QdesktopWidget ne soit pas vraiment manipulable comme les autres Widgets, il ne servirait qu'à obtenir des informations sur le bureau.

Du coup, je cherche une solution alternative.. On m'a notamment conseillé d'utiliser l'active desktop ou un hook.
Pour le premier je ne connais pas trop et ça me semble bien lourd à utiliser, et pour le second, je ne suis pas sur que l'on puisse en créer un sur le bureau d'apres ce que j'ai lu ici :

although the desktop allows no other hooks, journal hooks can record and play back events from and to the desktop.

Voila, si vous pouviez m'éclairer ça serait sympa.

2 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 févr. 2008 à 22:57
Avec WindowFromPoint() tu peux savoir ce qui est sous le curseur.

ciao...
BruNews, MVP VC++
0
Chayy Messages postés 4 Date d'inscription dimanche 3 décembre 2000 Statut Membre Dernière intervention 31 mars 2008
17 févr. 2008 à 11:41
Donc, en gros, je pose un hook souris, et avant de traiter la position du curseur je regarde s'il n'y a rien sous le curseur (je suis donc sur le bureau).
0
Rejoignez-nous