Activer une fenetre

cs_isir Messages postés 46 Date d'inscription mercredi 16 novembre 2005 Statut Membre Dernière intervention 14 février 2010 - 13 oct. 2007 à 21:45
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 20 oct. 2007 à 22:32
Dans une app MDI, comment faire pour activer une fenetre ouverte??

4 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
18 oct. 2007 à 17:12
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
0
cs_isir Messages postés 46 Date d'inscription mercredi 16 novembre 2005 Statut Membre Dernière intervention 14 février 2010
20 oct. 2007 à 10:29
je ne comprend pas comment recuperer un pointeur vers la fenetre
0
cs_isir Messages postés 46 Date d'inscription mercredi 16 novembre 2005 Statut Membre Dernière intervention 14 février 2010
20 oct. 2007 à 14:00
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.

 

 
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
20 oct. 2007 à 22:32
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
0
Rejoignez-nous