TigerFab
Messages postés115Date d'inscriptionsamedi 15 février 2003StatutMembreDernière intervention18 mai 2008
-
12 déc. 2004 à 19:52
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013
-
13 déc. 2004 à 21:05
Bonjour,
Je suis en train de faire une sorte de barre Office.
Quand on approche la souris de la barre Office, la barre apparaît.
On quitte, la barre sort de l'écran.
J'aimerai faire le même effet.
J'utilise les évènements Enter et Leave du formulaire servant de barre.
L'ennui c'est que si on met un composant (des boutons pour la barre par ex) lorsque la souris se déplace dessus, ca provoque évidemment l'évènement Form_Leave.
La form disparait donc une fois qu'on survole tout composant de cette barre.
Quelle serait l'astuce pour que l'évènement Form_Leave ne soit enclenché que lorsqu'on quitte réellement la barre (la form donc) et pas quand on survole les composants de cette form (donnant lieu à une apparition/disparition intempestive de la form) ?
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 13 déc. 2004 à 06:55
C'est pour cette raison que je te conseille de tester la position de la souris à l'écran avant de masquer la fenêtre : utilise la fonction de l'API Windows GetCursorPos.
_______________________________________
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 12 déc. 2004 à 20:03
Tu peux toujours tester la position de la souris dans ton Form Leave : si la souris est en dehors du rectangle de la fenêtre, alors ne rien faire, sinon, ne pas la masquer.
_______________________________________
TigerFab
Messages postés115Date d'inscriptionsamedi 15 février 2003StatutMembreDernière intervention18 mai 2008 12 déc. 2004 à 23:15
En fait si elle sort du rectangle, la barre "se replie" (évenement Form_Leave) donc c'est ok, c'est ce que je veux.
Mais si la souris passe au dessus d'un bouton de cette form, j'ai constaté que 2 évènements s'enclenchent : Button_Enter mais aussi le fameux Form_Leave.
J'ai essayé avec qcq booléens pour dire de ne pas exécuter Form_Leave dans ce cas là, mais ca marche pas, car c'est d'abord cet évènement qui est enclenché avant Button_Enter. Donc on sait rien faire pour empêcher l'évènement.
Je ne sais donc pas si j'utilise la bonne méthode ou s'il y a un truc plus simple pour ne pas enclencher l'évènement quand la souris reste dans le formulaire et passe au dessus de composants de ce formulaire (donc pour .NET quitte aussi le formulaire d'une certaine manière).
TIGER
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 13 déc. 2004 à 21:05
Heureux d'avoir pu te rendre service.
Ca m'étonne même que VB6 n'est pas de fonctions directement pour récupèrer la position de la souris, c'est tout de même bien plus pratique ! ;)
_______________________________________