SDI - weitere Documents
-
Hallo,
beim erstellen eines SDI-Projektes mit Doc/View-Struktur, wird automatisch ein CxxxDoc erstellt.
Kann man sich weitere Document's erstellen und einbinden?Und wenn ja, wie?
Hintergrund:
Ich möchte verschiedene Daten (Konfigurationen, allgemeine Daten, etc.) in separate Files schreiben.
Oder muss ich das Problem anders lösen?Danke+
-
Siehe: "Neues DocTemplate hinzufügen"
-
Also habe jetzt alle Beiträge hier und in der FAQ mit DocTemplate gesucht. Finde aber irgendwie nix passendes...
Die meisten Beispiele ordnen ja das neue Doc auch einen neuen View zu, was ich nicht habe. Und wenn ich es dem gleichen View zuordne, dann bekomm ich doch ein Problem, da es m_pDocument in der View nur einmal gibt.
Irgendwie fehlt mir ein bissl der Hintergrund bei diesem Thema.
Hast Du vielleicht einen Link, wo das etwas genauer erklärt ist?Danke+
-
Es ist doch nur ein Template, Du kannst dem neuen Dokument das gleiche View zuordnen!
Die Struktur ist so:------MyView------- <- ein und die gleiche Ansicht | | | XMLDoc TextDoc RTFDoc <- Die Dokumente | | | | | | XML1 XML2 Text1 Text2 RTF1 RTF2 <- die Dateien[ Dieser Beitrag wurde am 02.07.2003 um 16:18 Uhr von RenéG editiert. ]
-
Aha, jetzt ist mir das schon etwas klarer.
Und in der CxxxView habe ich doch den Zeiger m_pDocument der mir auf ein mein erstes Document zeigt und dann noch die Funtkion GetDocument:inline CxxxDoc* CxxxView::GetDocument() const { return reinterpret_cast<CxxxDoc*>(m_pDocument); }Und wie implementiere ich eine solche Funktion GetDocument2(), um auf das 2. Document Cxx2Doc zuzugreifen?
Ich kann doch nicht einfach m_pDocument der View-Klasse auf Cxx2Doc casten oder?Also sprich, wie bekomme ich den Zeiger auf ein neues hinzugefügtes Document?
-
Da deine View immer die gleichen Daten verarbeitet/anzeigt, müsste Deine Dokumentenschnittstelle also auch die gleichen Funktionen enthalten, falls sie überhaupt zur normalen CDocument-Schnittstelle weitere Funktionen benötigt.
2 Möglichkeiten, die mir auf Anhieb einfallen:
1. Du legst doch für jedes Dokument ein neues View an, welches sich nur noch vom altbekannten ableitet.
2. Du implementierst ein virtuelles Basisdokument für alle Dokumente und castest in Deiner View immer auf das Basisdokument.Ich persönlich würde 2. Möglichkeit den Vorrang geben.
-
Oha, Respekt!
Erstmal vielen Dank!
Werd mich mal an der 2. Version versuchen...
-
Und das klappt auch sehr gut!
Danke René!