VB6 - où se trouve le pointeur de ma souris ?

Résolu
cs_franckydeluka Messages postés 228 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 4 janvier 2008 - 18 avril 2006 à 16:27
rayjul Messages postés 13 Date d'inscription jeudi 2 décembre 2004 Statut Membre Dernière intervention 24 septembre 2008 - 3 mai 2006 à 10:01
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

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
18 avril 2006 à 16:55
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
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
19 avril 2006 à 10:53
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
cs_franckydeluka Messages postés 228 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 4 janvier 2008 1
18 avril 2006 à 17:05
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.
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
18 avril 2006 à 17:10
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>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
alexmagnus Messages postés 6 Date d'inscription dimanche 23 novembre 2003 Statut Membre Dernière intervention 15 juin 2006
18 avril 2006 à 17:46
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)
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
18 avril 2006 à 18:12
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>
0
cs_franckydeluka Messages postés 228 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 4 janvier 2008 1
19 avril 2006 à 10:27
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.
0
cs_franckydeluka Messages postés 228 Date d'inscription mardi 5 avril 2005 Statut Membre Dernière intervention 4 janvier 2008 1
19 avril 2006 à 11:43
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.
0
rayjul Messages postés 13 Date d'inscription jeudi 2 décembre 2004 Statut Membre Dernière intervention 24 septembre 2008
3 mai 2006 à 10:01
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
0
Rejoignez-nous