Document/View et CMultiDocTemplate (MFC)

Signaler
Messages postés
39
Date d'inscription
jeudi 27 février 2003
Statut
Membre
Dernière intervention
31 janvier 2006
-
Messages postés
1
Date d'inscription
jeudi 27 janvier 2005
Statut
Membre
Dernière intervention
22 mars 2006
-
Bonjour,

un truc bien drôle vient de m'arriver lol. Hier soir en me couchant mon prog. n'avait pas de problème, je me lève rajoute une nouvelle frame associé à une vue et le tt associé à un document (qui est le seul de tt le prog), et BooM veut plus me créer une des frames qui fonctionnait pourtant très bien et à laquelle je n'ai pas touché.
En fait à la création pas d'erreur mais juste un message me disant "La création d'un document vide a échoué" ???? pourquoi vide, il est fou cette OS.
Enfin bon valà mon problème, j'aurais voulu savoir si qqn savait à quel moment ceci peut provenir (j'ai des doutes sur la bonne association de la frame avec le document et sa vue)
Voici le code d'association des vue et la fonction pour les afficher :

BOOL CShareXFileApp::InitInstance()
{
....

AddDocTemplate(new CMultiDocTemplate(IDR_MAINFRAME,
RUNTIME_CLASS(MainDoc),
RUNTIME_CLASS(ChannelsFrame),
RUNTIME_CLASS(ChannelsView)));
AddDocTemplate(new CMultiDocTemplate(IDR_MAINFRAME,
RUNTIME_CLASS(MainDoc),
RUNTIME_CLASS(MesPartagesFrm),
RUNTIME_CLASS(MesPartagesView)));
AddDocTemplate(new CMultiDocTemplate(IDR_MAINFRAME,
RUNTIME_CLASS(MainDoc),
RUNTIME_CLASS(TChatFrame),
RUNTIME_CLASS(TchatView)));
CMainFrame* pMainFrame = new CMainFrame;
if (!pMainFrame->LoadFrame(IDR_MAINFRAME))
return FALSE;
m_pMainWnd = pMainFrame;
CCommandLineInfo cmdInfo;
ParseCommandLine(cmdInfo);
if (!ProcessShellCommand(cmdInfo))
return FALSE;
pMainFrame->ShowWindow(SW_SHOWMAXIMIZED);
pMainFrame->UpdateWindow();
LoadViews();
return TRUE;
}

void CShareXFileApp::LoadViews()
{
POSITION curTemplatePos = GetFirstDocTemplatePosition();

while(curTemplatePos != NULL)
{
CDocTemplate* curTemplate =
GetNextDocTemplate(curTemplatePos);
curTemplate->OpenDocumentFile(NULL); //Erreur sur le Template pour le TChat
}
}

L'erreur se produit dans le fichier docmulti.cpp fournit en arrière plan par MFC à la fonction OpenDocumentFile(NULL);

Si qqn sait ce qui pourrait faire défaut, je l'en remercie d'avance pour ses bons conseils.

++

2 réponses

Messages postés
30
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
7 novembre 2005

Si tu as eu la reponse a ton probleme je serais ravi de la connaitre j'ai exactement le meme probleme.
Messages postés
1
Date d'inscription
jeudi 27 janvier 2005
Statut
Membre
Dernière intervention
22 mars 2006

Possible solution (I had the same problem):
You must verify that the function CMainFrame::OnCreate doesn't return -1.
Normally this function must return 0;