Activer une fenetre

Signaler
Messages postés
46
Date d'inscription
mercredi 16 novembre 2005
Statut
Membre
Dernière intervention
14 février 2010
-
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
-
Dans une app MDI, comment faire pour activer une fenetre ouverte??

4 réponses

Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
Salut,

Regarde cette FAQ.

<hr size="2" width="100%" />3ème année en ecole d'ingé d'info cherche stage de 4 mois à partir du 01/04/08
Messages postés
46
Date d'inscription
mercredi 16 novembre 2005
Statut
Membre
Dernière intervention
14 février 2010

je ne comprend pas comment recuperer un pointeur vers la fenetre
Messages postés
46
Date d'inscription
mercredi 16 novembre 2005
Statut
Membre
Dernière intervention
14 février 2010

voila mon code :


la création des fenetres :




BOOL CGPCApp::InitInstance()


{


InitCommonControls();


CWinApp::InitInstance();


...


...


...


CMultiDocTemplate* pDocTemplate;


pDocTemplate =






new
CMultiDocTemplate(IDR_MENU1,RUNTIME_CLASS(CGPCDoc),

RUNTIME_CLASS(CChildFrame),


// frame enfant MDI personnalisé

RUNTIME_CLASS(CGPCView));





CMultiDocTemplate* pArticle;


pArticle =




new
CMultiDocTemplate(IDR_ARTICLE,RUNTIME_CLASS(CDocArticle),

RUNTIME_CLASS(CChildFrame),


// frame enfant MDI personnalisé

RUNTIME_CLASS(CListArticle));







AddDocTemplate(pDocTemplate);


AddDocTemplate(pArticle);





...


...


...


}


 


 


dans le menu, j'ai une option Ouvrire :









void



CGPCApp::OnOuvrire1(){

OuvrirDocument("fenetre1"); // fenetre1 c est le nom de la fenetre 1

}







void





CGPCApp::OnOuvrire2(){

OuvrirDocument("fenetre2"); // fenetre2 c est le nom de la fenetre 2

}



 




la fonction d'ouverture de fenetre :





 




bool





CGPCApp::OuvrirDocument(

const
CString& cible){

CString nomdoc;

CDocTemplate*pModele;

POSITION pos=


this
->GetFirstDocTemplatePosition();


while
(pos != NULL){

pModele=GetNextDocTemplate(pos);

pModele->GetDocString(nomdoc,CDocTemplate::docName);


if
(nomdoc==cible){

pModele->OpenDocumentFile(NULL);


return
TRUE;}

}


return



false
;}

 

 

si j'appel OnOuvrire1 la fenetre 1 s'affiche

si j'appel OnOuvrire2 la fenetre 2 s'affiche

maintenant (ce que je veux faire) si j'appel une autre fois OnOuvrire1 , celle-ci est déja ouverte, je veux qu'elle soit en premier plan.

 

 
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
Je connais plutôt mal les MFC.

Je ne vois rien qui puisse te permettre de remonter le handle de la fenêtre directement dans une instance de CDocTemplate.

Faudrait peut être essyer de récupérer le titre de la fenêtre.getDocString ne remonte un titre (Avec l'index windowTitle) seulement pour les applis SDI...


Mais peut être que tu peux remonter le titre de la fenêtre à partir de ce que tu récupère dans ta variable docname.


Ensuite, tu peux faire une FindWindow.





<hr width="100%" size="2" />
3ème année en ecole d'ingé d'info cherche stage de 4 mois à partir du 01/04/08