cs_franckydeluka
Messages postés228Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention 4 janvier 2008
-
18 avril 2006 à 16:27
rayjul
Messages postés13Date d'inscriptionjeudi 2 décembre 2004StatutMembreDernière intervention24 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.
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 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.
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 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
cs_franckydeluka
Messages postés228Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention 4 janvier 20081 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
alexmagnus
Messages postés6Date d'inscriptiondimanche 23 novembre 2003StatutMembreDernière intervention15 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)
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 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 !!!).
cs_franckydeluka
Messages postés228Date d'inscriptionmardi 5 avril 2005StatutMembreDernière intervention 4 janvier 20081 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 ?
rayjul
Messages postés13Date d'inscriptionjeudi 2 décembre 2004StatutMembreDernière intervention24 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