Erstellen einer Active Document-Container-Anwendung
Die empfohlene und einfachste Möglichkeit, eine Active Document-Container-Anwendung zu erstellen ist, eine Containeranwendung MFC EXE-Datei mit dem MFC-Anwendungs-Assistenten zu erstellen, ändert sich die Anwendung Active Document-Einschluss zu unterstützen.
So erstellen Sie eine Active Document-Container-Anwendung
Zeigen Sie im Menü DateiProjektUntermenü Neu.
Klicken Sie im linken Bereich auf Visual C++ Projekttyp.
Wählen Sie MFC-Anwendung im rechten Bereich angezeigt.
Nennen Sie das Projekt MyProj, klicken Sie auf OK.
Wählen Sie die Seite Verbunddokumente aus.
Wählen Sie die Container oder Option Container/Voll-Server aus.
Aktivieren Sie das Kontrollkästchen Active Document-Container.
Klicken Sie auf Fertig stellen.
Wenn der MFC-Anwendungs-Assistent beendet, um die Anwendung zu generieren, öffnen Sie die folgenden Dateien mithilfe des Projektmappen-Explorers:
- MyProjview.cpp
In MyProjview.cpp nehmen Sie die folgenden Änderungen vor:
In CMyProjView::OnPreparePrinting die Funktion ersetzen Sie den Inhalt durch den folgenden Code:
if (!CView::OnPreparePrinting(pInfo)) return FALSE; if (!COleDocObjectItem::OnPreparePrinting(this, pInfo)) return FALSE; return TRUE;
OnPreparePrinting Druckunterstützung bereitgestellt.Dieser Code ersetzt DoPreparePrinting, der die standardmäßige Drucken Vorbereitung befindet.
Active Document-Einschluss bietet ein optimiertes druckendes Schema:
Sie können zuerst das aktive Dokument nach seiner IPrint-Schnittstelle und diese zu übermitteln, um sich selbst zu drucken.Dies ist mit vorheriger OLE-Kapselung unterschiedlich, in der der Container ein Bild des enthaltenden Elements auf das Objekt CDC Drucker rendern musste.
Wenn dies fehlschlägt, weisen Sie das enthaltende Element an, die sich durch ihre IOleCommandTarget-Schnittstelle zum Drucken
Wenn dies fehlschlägt, führen Sie ein eigenes Rendering des Elements.
Die statischen Memberfunktionen COleDocObjectItem::OnPrint und COleDocObjectItem::OnPreparePrinting, wie im vorherigen Code implementiert, behandeln dieses verbesserte druckende Schema.
Fügen Sie eine eigene Implementierung hinzu, und erstellen Sie die Anwendung.