AU 1ER PLAN... OUI MAIS PAS TOUT LE TEMPS

Résolu
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 - 26 janv. 2006 à 16:26
bastientelecom Messages postés 28 Date d'inscription vendredi 10 mars 2006 Statut Membre Dernière intervention 1 mars 2007 - 24 janv. 2007 à 09:03
Salut,

Voila mon problème : J'ai une fenetre qui lance divers programmes par des ShellExecute.
Le problème c'est quand quand je ferme le programme lancé par le ShellExecute, ma fenetre se retrouve en arrière plan.

J'ai donc essayé d'utiliser l'API SetWindowPos... Et là, ma fenêtre est bien au premier plan... si bien qu'elle le reste toujours, même quand je lance une autre appli avec le ShellExecute

Comment faire donc pour releguer ma fenetre au second plan avant chaque ShellExecute ? ou existe-t-il une solution qui ne fasse que mettre une fenetre au premier plan à un instant T ?

Merci d'avance
Bonne prog
++

7 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 janv. 2006 à 17:55
Teste SetForeGroundWindow()

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
3
Mindiell Messages postés 558 Date d'inscription jeudi 25 juillet 2002 Statut Membre Dernière intervention 5 septembre 2007 1
27 janv. 2006 à 10:20
SetForeGroundWindow au début du programme,

puis SetForeGroundWindow après chaque ShellExecute

Mindiell Software
http://mindiell.free.fr
[mailto:mindiell_nospam@free.fr mindiell_nospam@free.fr]
3
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
26 janv. 2006 à 18:13
Merci, mais malheureusement cela ne fonctionne pas. J'ai l'impression que SetWindowPos garde le dessus.

N'existerai-t-il pas un autre parametre à passer à SetWindowPos pour libérer le premier plan ?

Bonne prog
++
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 janv. 2006 à 18:58
Je pensai que si tu utilisais SetForeGroundWindow tu aurais abandonné SetWindowPos.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
0

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

Posez votre question
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
27 janv. 2006 à 08:11
lol, j'avais pas compris.

Cependant, dans ce cas mon problème reste entier dans ce cas. Car le problème de base c'est que ma fenetre se retrouve en arrière plan après la fermeture du programme lancé avec ShellExecute.
Quand je dit arriere plan, c'est même derrière une fenetre IE qui serait ouverte.

Ex : Ma fenetre à la premier plan. Elle lance Calc.exe, et quand Calc.exe est fermé ma fenetre passe derriere toutes les autres.

Donc la je veux qu'elle reprenne le focus. Mais quand je relance Calc.exe, le fait d'avoir utilisé SetWindowPos : Calc.exe est derriere ma fenetre...

Bonne prog
++
0
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
27 janv. 2006 à 10:55
Qu'est ce que je peux être lourd des fois... Ok pour SetForeGroundWindow

Merci à vous deux.
Bonne prog
++
0
bastientelecom Messages postés 28 Date d'inscription vendredi 10 mars 2006 Statut Membre Dernière intervention 1 mars 2007
24 janv. 2007 à 09:03
Bonjour,
J'ai trouvé quelque chose !
Dans Microsoft Visual Basis tu séléctionnes ton form et tu met à True la directive TopMost, vers la fin du menu Propriété du Form. Et ça marche !!!
Cordialement
0
Rejoignez-nous