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

Résolu
Signaler
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
-
Messages postés
28
Date d'inscription
vendredi 10 mars 2006
Statut
Membre
Dernière intervention
1 mars 2007
-
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

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Teste SetForeGroundWindow()

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

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
559
Date d'inscription
jeudi 25 juillet 2002
Statut
Membre
Dernière intervention
5 septembre 2007
1
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 109 internautes nous ont dit merci ce mois-ci

Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
1
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
++
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Je pensai que si tu utilisais SetForeGroundWindow tu aurais abandonné SetWindowPos.

ciao...
http://dev.winsysdev.com
BruNews, MVP VC++
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
1
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
++
Messages postés
1411
Date d'inscription
mercredi 6 août 2003
Statut
Membre
Dernière intervention
3 mars 2019
1
Qu'est ce que je peux être lourd des fois... Ok pour SetForeGroundWindow

Merci à vous deux.
Bonne prog
++
Messages postés
28
Date d'inscription
vendredi 10 mars 2006
Statut
Membre
Dernière intervention
1 mars 2007

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