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.