Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1848 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Basculer un programme déjà lancé en premier plan

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Basculer un programme déjà lancé en premier plan

n°1143175
pingfr
Posté le 07-07-2005 à 13:22:40  profilanswer
 

Bonjour,
 
J'essaie en C++ sous Visual Studio 6 de basculer en premier un programme déjà lancé.
 
J'arrive à le faire en C mais pas dans mon appli MFC.
 
En C, j'ai ce source :
 
int main()
{
 
// recherche de la fenetre Notepad
HWND hFore = FindWindow("Notepad",NULL);
 
//affichage en premier plan du notepad
SetForegroundWindow(hFore);
 
}
 
Et ça marche correctement.
 
Mais une fois mis dans une MFC, ça ne marche pas :
 
void CJeffSend30Dlg::UnSeulJeffSend()
{
 //HWND remplacé par CWnd sinon la commande ne marche pas ( erreur : cannot convert from 'class CWnd *' to 'struct HWND__ )
 CWnd * hFore = FindWindow("Notepad",NULL);
 SetForegroundWindow(hFore);
 
}
 
J'ai une erreur à la compilation qui me dit que SetForegroundWindow(hFore) ne prends pas de parametres...
J'ai essayé beaucoup de solutions mais rien de marche.
 
Merci d'avance ^^

mood
Publicité
Posté le 07-07-2005 à 13:22:40  profilanswer
 

n°1143235
slash33
Posté le 07-07-2005 à 14:08:47  profilanswer
 

Essaie ça:

Code :
  1. void CJeffSend30Dlg::UnSeulJeffSend()
  2. {
  3.   HWND hFore = ::FindWindow("Notepad", NULL);
  4.   if (hFore != NULL)
  5.   {
  6.      ::SetForegroundWindow(hFore);
  7.   }
  8. }


Ca c'est du Win 32 classique. En MFC ça doit donner ça:

Code :
  1. void CJeffSend30Dlg::UnSeulJeffSend()
  2. {
  3.   CWnd* pWndFore = CWnd::FindWindow("Notepad", NULL);
  4.   if (pWndFore != NULL)
  5.   {
  6.      pWndFore->SetForegroundWindow();
  7.   }
  8. }


Moralité: quand on fait du WIN32 pur on n'oublie pas le '::' devant les fonctions...  :sol:


Message édité par slash33 le 07-07-2005 à 14:14:12
n°1143428
pingfr
Posté le 07-07-2005 à 16:39:47  profilanswer
 

Ok, merci de m'avoir dépanné, ça marche nikel ;o)

n°1143479
pingfr
Posté le 07-07-2005 à 17:22:28  profilanswer
 

Une derniere petite chose :
La fenetre de mon programme n'a pas de nom, je recupere #32770 comme nom, donc pas moyen de la selectionner pour la mettre en premier plan...
Comment puis-je lui donner un nom ? (comme 'MonProg' par ex ?)

n°1143926
slash33
Posté le 08-07-2005 à 08:56:43  profilanswer
 

Avec SetWindowText ça ne donne rien?

n°1143943
pingfr
Posté le 08-07-2005 à 09:20:50  profilanswer
 

Oui, Il change bien le titre de la fenetre, mais pas le nom de la class name.
Quand je lance un petit soft pour donner le class name du programme en éxecution, ca me donne "#32770", alors que pour le notepad par exemple, ca me donne "Notepad" ...

n°1144144
slash33
Posté le 08-07-2005 à 11:23:15  profilanswer
 

Excuse je n'avais pas bien compris.
Alors la classname elle doit être définie dans la structure WNDCLASS si je me souviens bien.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Basculer un programme déjà lancé en premier plan

 

Sujets relatifs
[Algo]Algo d'un programme de messagerie ?connection a un serveur mysql sous linux dans un programme en c++
Projeter une image 2d sur un planProgramme de recherche / click sur html
Developpement d'un programme de publicités webacquisition d'image d'interface GTK pendant l'exécution d'un programme
Programme en C avec erreursinstallation programme
URGENT !!!!!!!!!!!!!!! Lancement d'une page WEB depuis un programme[MFC][URGENT]Afficher une fenetre fille en premier plan
Plus de sujets relatifs à : Basculer un programme déjà lancé en premier plan


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR