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.
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.
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
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
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)
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 !!!).
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 ?
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