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

Messages postés
228
Date d'inscription
mardi 5 avril 2005
Dernière intervention
4 janvier 2008
- 18 avril 2006 à 16:27 - Dernière réponse :
Messages postés
13
Date d'inscription
jeudi 2 décembre 2004
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.
Afficher la suite 

9 réponses

Meilleure réponse
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
- 18 avril 2006 à 16:55
3
Merci
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>

Merci cs_DARKSIDIOUS 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Meilleure réponse
Messages postés
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
- 19 avril 2006 à 10:53
3
Merci
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>

Merci cs_DARKSIDIOUS 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Messages postés
228
Date d'inscription
mardi 5 avril 2005
Dernière intervention
4 janvier 2008
- 18 avril 2006 à 17:05
0
Merci
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
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
- 18 avril 2006 à 17:10
0
Merci
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
Dernière intervention
15 juin 2006
- 18 avril 2006 à 17:46
0
Merci
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
15838
Date d'inscription
jeudi 8 août 2002
Dernière intervention
4 mars 2013
- 18 avril 2006 à 18:12
0
Merci
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
Dernière intervention
4 janvier 2008
- 19 avril 2006 à 10:27
0
Merci
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
Dernière intervention
4 janvier 2008
- 19 avril 2006 à 11:43
0
Merci
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
Dernière intervention
24 septembre 2008
- 3 mai 2006 à 10:01
0
Merci
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.