Zus. Document / Template in einer MDI-Anwendung
-
Hallo,
ich möchte innerhalb einer MDI-Anwendung einen anderen Dokumenttyp öffnen bzw. darstellen.
Das ist allerdings Neuland für mich.
ich habe dem Projekt ein weites COleDocument und ein ein weiteres CView hinzugefügt.
Ferner habe ich ein weiteres Template erzeugt.
Wie kann ich es jedoch ansprechen (Öffnen / Schließen, etc)Gruss
Achim
-
Wenn Du es der Applikation hinzugefügt hast (AddDocTemplate) müsstest Du über "Datei-Neu" den Typus angeboten bekommen. Ansonsten kannst Du die entsprechenden Funktionen aus dem CDocTemplate::OpenDocumentFile verwenden.
-
OK, Danke für die Info.
Dann liegt mein Problem wohl schon bei der Anlage des Templates.
Wie kann ich bei der template Auswahl unterschiedliche Typen festlegen?
Anders gefragt. Wenn ich das 2. Template genauso anlege wie das bereits vorhandene aber nur auf die neuen Klassen beziehe, bekomme ich bei OnFileNew() eine Auswahl von 2. Möglichen Dokumenten angezeigt. Diese sind aber unetr dem gleichen Namen geführt. kann ich dies ändern, und kann ich bei OnFileNew mich bereits auf ein Template beziehen?Gruss
Achim
-
Den Namen gibst Du doch im Template an... das verstehe ich jetzt nicht ganz. Oder willst Du vermeinde, dass der Datentyp Dialog erscheint?
-
Hallo,
1. ja ich möchte den Dialog auf jeden Fall vermeiden.
2. wo übergebe ich den Namen im Template ? Irgendwie ich blind ...
Anbei mein Codefragment zur Anlage des Templates. Ich kann leider nicht die Namensübergabe erkennen... Oder wird das noch woanders vorgenommen?CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(
IDR_LABVERTYPE,
RUNTIME_CLASS(CLabVerDoc),
RUNTIME_CLASS(CChildFrame),
RUNTIME_CLASS(CLabVerView));
pDocTemplate->SetContainerInfo(IDR_LABVERTYPE_CNTR_IP);
AddDocTemplate(pDocTemplate);
m_server.ConnectTemplate(clsid, pDocTemplate, FALSE);Gruss
Achim
-
Der Name stecktin der Stringvariablen von IDR_LABVERTYPE!
Wenn der Dialog nicht erscheinen darf, dann musst Du in jedem Fall OnFileNew überschreiben.
Dort einfach
pTemplate->OpenDocumentFile(NULL);mit dem gewünschten Template ausführen.
-
OK, das verstehe ich .
aber wie bekomme ich vom MainFrame Zugriff auf
pTemplate->OpenDocumentFile(NULL); ??Gruss
Achim
-
1. Merke Dir doch den Zeiger in einer Variable in Deinem CWinApp Objekt.
2. Du soltest OnFileNew nicht CMainRame sondern Deinem CWinApp zuordnen.
-
Cool, danke für die Informationen.
Das hat mir sehr geholfen!Gruss
Achim