Comment savoir si mon appli a le focus ?

Résolu
Mutos Messages postés 103 Date d'inscription mercredi 30 avril 2003 Statut Membre Dernière intervention 14 mai 2010 - 27 sept. 2005 à 06:43
Mutos Messages postés 103 Date d'inscription mercredi 30 avril 2003 Statut Membre Dernière intervention 14 mai 2010 - 24 nov. 2005 à 07:23
Bonjour à tous,


Je souhaiterai savoir si mon application a le focus. Il y a bien "GetActiveWindow", mais je n'ai pas compris dans la description le "active window associated with the thread that calls the function" dans "The GetActiveWindow function retrieves the window handle to the active window associated with the thread that calls the function."

L'idée est de ne pas mettre à jour certaines choses (rendu 3D) si l'appli n'a pas le focus.

Merci d'avance...


@+
Benoît 'Mutos' ROBIN
http://spacesims.hoshikaze.net

5 réponses

Mutos Messages postés 103 Date d'inscription mercredi 30 avril 2003 Statut Membre Dernière intervention 14 mai 2010
24 nov. 2005 à 07:23
Bonjour à tous,


En fait, j'utilise maintenant à la fois "GetActiveWindow" et "GetActiveWindow" et je le fais à chaque boucle de rendu, plus dans un événement. J'utilise aussi "GetWindowTextLength", "GetWindowText" et "IsWindow" pour le contrôle d'identité de la fenêtre.

Tous les événements que j'ai trouvé étaient insuffisant pour gérer tous les cas. En particulier, lorsque l'on icônifie la fenêtre puis qu'on la remet au premier plan en cliquant sur la barre de tâches, je n'ai pas trouvé quel événement pouvait trapper çà...

C'est dommage, j'aurai voulu éviter de mettre le test dans la boucle de rendu, mais comme on dit, fôskifô ^-^


@+

Benoît 'Mutos' ROBIN
http://spacesims.hoshikaze.net
3
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
27 sept. 2005 à 09:01
Sur l'évenement LostFocus de ton formulaire, tu mets un booléen à False, qui t'interdira d'afficher certaines choses.




Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
0
Mutos Messages postés 103 Date d'inscription mercredi 30 avril 2003 Statut Membre Dernière intervention 14 mai 2010
27 sept. 2005 à 19:50
Slt,


Aussi simple que çà ? J'y crois pas ^-^

@+
Benoît 'Mutos' ROBIN
http://spacesims.hoshikaze.net
0
Mutos Messages postés 103 Date d'inscription mercredi 30 avril 2003 Statut Membre Dernière intervention 14 mai 2010
28 sept. 2005 à 05:56
Bonjour à tous, bonjour econs,


Je viens d'essayer, çà ne marche pas. Je cache la fenêtre par d'autres applications, avec un point d'arrêt dans mon évènement LostFocus et çà n'y passe jamais...


@+

Benoît 'Mutos' ROBIN
http://spacesims.hoshikaze.net
0

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

Posez votre question
Mutos Messages postés 103 Date d'inscription mercredi 30 avril 2003 Statut Membre Dernière intervention 14 mai 2010
28 sept. 2005 à 06:24
Bonjour à tous,


Quelques essais supplémentaires et j'ai une solution : Activated et Deactivate au lieu de GotFocus et LostFocus. Il ne faut jamais utiliser ces derniers, apparemment, car ils surviennent dans des circonstances trop aléatoires pour être fiables.

Seul problème, je masque en partie ma fenêtre par une autre application, l'affichage 3D disparaît bien, mais lorsque je retire l'autre application, il ne revient pas, il faut cliquer dans la fenêtre pour le faire repartir. Pas top mais çà ira comme çà pour l'instant ^-^


@+

Benoît 'Mutos' ROBIN
http://spacesims.hoshikaze.net
0
Rejoignez-nous