F
Hallo markus,
du willst mir dahin bringen, daß ich mich in deutscher Sprache verbesere, oder ? :-))
Okay, es gibt zwei Moeglichkeiten:
in MyApp.cpp haben
CMultiDocTemplateML* pDocTemplate;
pDocTemplate = new CMultiDocTemplateML(
IDR_MULTILTYPE3,
RUNTIME_CLASS(CMyDoc1),
RUNTIME_CLASS(CMyChildFrame1), // custom MDI child frame
RUNTIME_CLASS(CMyView1));
AddDocTemplate(pDocTemplate);
pDocTemplate = new CMultiDocTemplateML(
IDR_MULTILTYPE1,
RUNTIME_CLASS(CMyDoc2),
RUNTIME_CLASS(CMyChildFrame2), // custom MDI child frame
RUNTIME_CLASS(CMyView2));
AddDocTemplate(pDocTemplate);
und dann einzelne templates suchen:
POSITION teml_pos = AfxGetApp()->GetFirstDocTemplatePosition();
ASSERT(teml_pos);
while (teml_pos)
{
CDocTemplate* pTemplate = AfxGetApp()->GetNextDocTemplate (teml_pos);
.....
}
oder, und das is ganz besser:
in MyApp.h haben:
CMultiDocTemplate* pDocTemplateProfile;
CMultiDocTemplate* pDocTemplateFiltr;
und in MyApp.cpp :
pDocTemplateProfile = new CMultiDocTemplate(
IDR_INBUSVTYPE,
RUNTIME_CLASS(CInbusViewDoc),
RUNTIME_CLASS(CChildFrame), // custom MDI child frame
RUNTIME_CLASS(CInbusProfileView));
AddDocTemplate(pDocTemplateProfile);
pDocTemplateFiltr = new CMultiDocTemplate(
IDR_INBUSVFILTR,
RUNTIME_CLASS(CFiltrDoc),
RUNTIME_CLASS(CChildFrameFiltr), // custom MDI child frame
RUNTIME_CLASS(CFiltrView));
AddDocTemplate(pDocTemplateFiltr);
Jetzt du hast zwei templates, aber du hast auch zwei direkte pointers auf sie. Neue dokumenten kanst du dann rufen:
void CMyApp::OnNewFilter()
{
pDocTemplateFiltr->OpenDocumentFile (NULL);
}
void CMyApp::OpenNewProfile (long klic)
{
pDocTemplateProfile->OpenDocumentFile (NULL);
}
Die zweite Frage verstehe ich nicht ganz gut. Du moechtest datein in zwei verschidenen Fenster oder in zwei verchidenen views in einem Fenster darstellen ?
Fredy