Form au premier plan par dessus une fenêtre FullScreen
cs_saifer
Messages postés115Date d'inscriptionsamedi 29 mars 2003StatutMembreDernière intervention19 décembre 2008
-
27 juil. 2008 à 10:45
cs_saifer
Messages postés115Date d'inscriptionsamedi 29 mars 2003StatutMembreDernière intervention19 décembre 2008
-
14 août 2008 à 09:16
Bonjour à tous !
Un problème se pose à moi depuis hier soir, je souhaite afficher ma Form par dessus une fenêtre pleine écran (un jeu vidéo). J'ai essayé la propriété TopMost, elle ne marche pas avec ma fenêtre en plein écran. J'ai essayé d'utiliser l'API SetWindowPos avec HWND_TOPMOST, marche pas. J'ai même essayé de rafraichir ma Form dans un thread pour la passer en TopLevel régulièrement, mais rien n'y fait.. Alors comment faire afficher ma Form au dessus d'une fenêtre fullscreen ?
Je précise que j'affiche ma form à la suite de l'appui sur une touche grâce à un hook. Le hook marche très bien, quand je suis dans le jeu, je vois la fenêtre qui s'affiche une fraction de seconde, puis qui passe derrière ..
Lorsque je ne suis pas dans le jeu, la propriété TopMost marche très bien.
cs_eldim
Messages postés956Date d'inscriptionlundi 30 mai 2005StatutMembreDernière intervention21 août 20141 29 juil. 2008 à 12:11
Bonjour,
le problème c'est qu'un jeu se rafraichi en permanence donc il te faut gérer un timer pour mettre ta form sur le jeu et forcer à chaque passage du timer le activate (en plus du top most) ou alors il te suffit juste de passer ton jeu en mode fenêtre
-- Pourquoi faire simple quand on peut faire compliquer --
cs_saifer
Messages postés115Date d'inscriptionsamedi 29 mars 2003StatutMembreDernière intervention19 décembre 20081 13 août 2008 à 18:57
Tout d'abord désolé pour cette réponse tardive, mais j'ai été très pris par un autre projet + mon taff..
En effet eldim, le problème vient bien du rafraichissement de l'écran. J'ai donc fais un thread qui active la fenêtre régulièrement, seul problème et de taille, lorsque ma fenêtre s'active le fenêtre en plein écran (c'est un jeu) se minimise dans la barre de tâche.
J'ai donc essayer une autre technique détournée, qui est de définir l'opacité de la fenêtre dans le thread (à la place de Activate()), ma fenêtre s'affiche bien par dessus mais difficilement, elle scintille et est complètement illisible !
Donc si vous avez une autre solution je suis prenneur (que ce soit n'importe qu'elle technique, n'importe quel langage) pour afficher une Form par dessus une fenêtre "fullscreen".
cs_saifer
Messages postés115Date d'inscriptionsamedi 29 mars 2003StatutMembreDernière intervention19 décembre 20081 14 août 2008 à 09:16
Je vais essayer en C en directX. Mais je ne suis pas sûr que je puisse affiche ma fenêtre par dessus l'autre.
Sinon j'ai entendu parler de Detours (http://research.microsoft.com/sn/detours/), une librairie qui permet d'injecter son propre dans des fonctions, ca ca pourrait être pas mal sinon, jvais essayer cette piste et je vous tiens au courant ;)