VB6 - où se trouve le pointeur de ma souris ? [Résolu]

Signaler
Messages postés
228
Date d'inscription
mardi 5 avril 2005
Statut
Membre
Dernière intervention
4 janvier 2008
-
Messages postés
13
Date d'inscription
jeudi 2 décembre 2004
Statut
Membre
Dernière intervention
24 septembre 2008
-
Bonjour à Tous,

Voilà j'ai une question toute simple mais je bloque dessus
Dans une forme en VB6 Est-il possible de savoir au-dessus de quel controle se trouve le pointeur de ma souris ?
Merci.



Deluka.

9 réponses

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
115
Oui, mais les solutions que je te propose est assez compliquées pour une chose finalement aussi simple :
Récupèrer la position de la souris sur l'écran (API GetCursorPos) puis les traduire en coordonnées fenêtre (API ScreenToClient) et enfin, tester les coordonnées de la souris avec tout les contrôles sur ta feuille.
OU :
Récupèrer le handle de la fenêtre en dessous de la souris (API GetWindowFromPoint) et tester les handle de fenêtre de tout tes contrôles de ta feuille avec cet handle.

_
Avant de poster dans le forum,
prière d'aller lire ceci :
http://www.codes-sources.com/reglement.aspx
<s></s>
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
115
Bah avec la fonction de l'API Windows GetWindowsFromPoint, tu récupère un long qui correspond à un handle de fenêtre.
Il reste plus qu'à tester si cet handle est l'un de tes contrôles, et si oui, lequel, donc il faut tester si le hWnd de tes contrôles (uniquement les contrôles qui en possèdent un, donc pas les labels, ni les lines, ni les shapes, etc.) est égal au handle récupèré par GetWindowsFromPoint

_
Avant de poster dans le forum,
prière d'aller lire ceci :
http://www.codes-sources.com/reglement.aspx
<s></s>
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Messages postés
228
Date d'inscription
mardi 5 avril 2005
Statut
Membre
Dernière intervention
4 janvier 2008
1
Voilà, en fait j'avais peur de m'attaquer à ce genre de codage et je me demandais si finalement il n'existait pas une fonction qui me renverrait le nom du contrôle au-dessus duquel je me trouve. (disons que ce n'est pas tellement compliqué mais ça paraît énorme pour finalement si peu )

Okay alors je vais utiliser la première solution
Merci



Deluka.
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
115
La deuxième sera bien plus simple à mettre en place bien que moins fiable !

_
Avant de poster dans le forum,
prière d'aller lire ceci :
http://www.codes-sources.com/reglement.aspx
<s></s>
Messages postés
6
Date d'inscription
dimanche 23 novembre 2003
Statut
Membre
Dernière intervention
15 juin 2006

Moi je recupere le X et le Y de la souris par la methode MouseDown d'un controle, en ajoutant à ces valeurs la position du controle sur la form. Cependant, ca ne marche que pour des valeurs de la form (pas de l'ecran)
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
115
alexmagnus : tu ne peux pas récupèrer le mousedown de toute ta feuille à partir d'un simple contrôle : il suffit que l'utilisateur clique sur un bouton par exemple, alors le mousedown ne se déclenche que pour ce bouton.

De plus, le but ici est de récupèrer les coordonnées de la souris lors du survol apparement et non au clic.

Il y a un moyen pour rediriger tout les événements souris vers un contrôle facilement (API SetCapture) mais le problème c'est que les événements de la souris sont alors interceptés, et ils ne sont plus acheminés aux contrôles de la feuille (ni même tout les événements des autres feuilles hors application !!!).

_
Avant de poster dans le forum,
prière d'aller lire ceci :
http://www.codes-sources.com/reglement.aspx
<s></s>
Messages postés
228
Date d'inscription
mardi 5 avril 2005
Statut
Membre
Dernière intervention
4 janvier 2008
1
Darksidious : Au risque de poser une question basique je n'ai pas bien compris la deuxième solution :
Qu'est-ce que tu entends par handle de la fenêtre ? puis handle de fenêtre de tous tes contrôles de ta feuille avec cet handle ?



Deluka.
Messages postés
228
Date d'inscription
mardi 5 avril 2005
Statut
Membre
Dernière intervention
4 janvier 2008
1
Merci, j'avais pas bien saisi la notion .
J'ai cherché aussi sur le web et je suis tombé sur cette adresse que je partage :

http://xav.prog.power.free.fr/

il y a une liste d'API recensée concernant le handle mais plus encore.
ainsi que quelques exemples VB6 qui d'ailleurs proviennent de code-source .

++



Deluka.
Messages postés
13
Date d'inscription
jeudi 2 décembre 2004
Statut
Membre
Dernière intervention
24 septembre 2008

Je ne sais pas si j'ai bien interprété ta question. Si c'est simplement pour connaitre le nom du contrôle, et si celui-ci contient une propriété tooltyptext, y inscrire le nom ou la caption

evajul