Document/View et CMultiDocTemplate (MFC)

Trollien Messages postés 39 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 31 janvier 2006 - 5 août 2003 à 10:30
 Utilisateur anonyme - 22 mars 2006 à 17:17
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

cs_xakal Messages postés 30 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 7 novembre 2005
23 mars 2004 à 15:01
Si tu as eu la reponse a ton probleme je serais ravi de la connaitre j'ai exactement le meme probleme.
0
Utilisateur anonyme
22 mars 2006 à 17:17
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;
0
Rejoignez-nous