IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Mettre en avant plan une autre application...


Sujet :

MFC

  1. #1
    Membre confirm� Avatar de loupdeau
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    125
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 125
    Par d�faut Mettre en avant plan une autre application...
    Salut,

    je voudrais pouvoir depuis mon application mettre en avant plan une autre application.

    Le nom de la fenetre de l'autre application n'�tant pas fixe, je voudrais y avoir acc�s gr�ce � la classe de celle-ci.

    Spy++ me dit que la fenetre est de classe :

    Afx:00400000:b:00010011:00000006:002B03FD
    Comment cr�e un objet WNDCLASS correspondant � cette classe ??? pour pouvoir ensuite le passer en parametre de :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    CWnd* pWnd = CWnd::FindWindow( laclasse , NULL);
    	if(pWnd != 0)
    	{
    		::PostMessage(pWnd->GetSafeHwnd(),WM_SYSCOMMAND, SW_SHOWMAXIMIZED, 0L );
    	}
    ???

    Merci

  2. #2
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    je suis �tonn� de ce nom de classe, mais en g�n�ral, un findwindow sur le nom de la classe permet de retrouver la fenetre

  3. #3
    Membre confirm� Avatar de loupdeau
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    125
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 125
    Par d�faut
    est-ce qu'il est possible de faire un findwindow en ne sp�cifiant qu'un partie du nom de la fenetre ?

  4. #4
    Membre Expert
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Par d�faut
    de m�moire oui

  5. #5
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    non, il faut boucler sur toutes les fenetres et faire une comparaison, il y a un exemple dans la faq si je me trompe pas, cherche enumwindow

  6. #6
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par d�faut
    Utilise ShowWindow( SW_MAXIMIZE ) sur la handle renvoy�.

  7. #7
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par d�faut
    Si tu peux r�cup�rer un handle sur le thread principal du process (si tu le cr�e...) tu peux utilise EnumThreadWindows aussi.

  8. #8
    Membre confirm� Avatar de loupdeau
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    125
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 125
    Par d�faut
    C'est bon ca marche, j'ai fait comme dit dans la FAQ

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    char szIdentite[]="Perforce";
    	CWnd* pWnd = CWnd::GetDesktopWindow( )->GetTopWindow( );
    	CWnd *pWndWord = 0;
    	CString s,strWord;
    	while( 1 )
    	{
    		pWnd = pWnd->GetNextWindow();
    		if ( pWnd == NULL ) break;
    		pWnd->GetWindowText( s );
    		strWord=s;
    		if(strWord.Find(szIdentite)!=-1)
    		{
    			pWndWord = pWnd;
    			break;
    		}
    	}
    	if(pWndWord)
    	{
    		::PostMessage(pWndWord->GetSafeHwnd(),WM_SYSCOMMAND, SC_MAXIMIZE, 0L );
    	}
    j'ai bien regard� dans les diff�rents parametres pour WM_SYSCOMMAND... et je trouve un �quivalent � WM_SHOWWINDOW...

    Avec SC_MAXIMIZE, ca affiche l'autre appli la premi�re fois.
    Je retourne dans mon appli. Et la 2�me fois que l'autre appli devrait apparaitre elle n'apparait pas (eh oui elle est d�ja Maximized...)

    Quelqu'un sait comment faire ???

  9. #9
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    tu peux utiliser bringwindowtotop

  10. #10
    Membre confirm� Avatar de loupdeau
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    125
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 125
    Par d�faut
    le probl�me avec bringwindowtotop c'est que je dois fermer l'autre application sinon j'ai plus acc�s � la mienne...

  11. #11
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    je ne vois pas le probl�me, c'est juste un jeu de positionnement. Ca ne va pas bloquer une autre fenetre d'etre mise en premier plan

  12. #12
    Membre confirm� Avatar de loupdeau
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    125
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 125
    Par d�faut
    Pourtant quand je fais :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    pWndWord->BringWindowToTop();
    la fenetre point� par pWndWord devient Modal pour mon application seulement...

  13. #13
    R�dacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par d�faut
    et si tu fais
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    ::BringWindowToTop(pWndWord->GetSafeHwnd());

  14. #14
    Membre confirm� Avatar de loupdeau
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    125
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 125
    Par d�faut
    je ne m�rite que ca ->

    j'avais mis tout ca dans un "OnSetFocus"... donc normal que ca semblait fig�...

    merci pour ton aide

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Mettre en avant plan une des instances d'une Mdichildren
    Par tangai dans le forum Windows Forms
    R�ponses: 0
    Dernier message: 22/09/2011, 11h05
  2. Assurer de mettre en avant-plan une application 'child'
    Par j.p.mignot dans le forum API, COM et SDKs
    R�ponses: 1
    Dernier message: 26/10/2010, 03h23
  3. R�ponses: 13
    Dernier message: 25/02/2010, 17h09
  4. mettre au premier plan une application Excel
    Par darkspoilt dans le forum VBA Access
    R�ponses: 3
    Dernier message: 05/03/2008, 13h19
  5. R�ponses: 3
    Dernier message: 26/09/2007, 14h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo