Freigeben über


Erstellen einer Containeranwendung für aktive Dokumente

Die einfachste und am einfachsten empfohlene Methode zum Erstellen einer aktiven Dokumentcontaineranwendung besteht darin, eine MFC EXE-Containeranwendung mit dem MFC-Anwendungs-Assistenten zu erstellen und dann die Anwendung so zu ändern, dass aktive Dokumenteindämmung unterstützt wird.

So erstellen Sie eine aktive Dokumentcontaineranwendung

  1. Klicken Sie im Menü "Datei" im Untermenü "Neu" auf "Projekt".

  2. Klicken Sie im linken Bereich auf den Visual C++ -Projekttyp.

  3. Wählen Sie im rechten Bereich die MFC-Anwendung aus.

  4. Nennen Sie das Projekt "MyProj", klicken Sie auf "OK".

  5. Wählen Sie die Seite " Verbunddokumentunterstützung" aus .

  6. Wählen Sie die Option "Container" oder "Container/Full-Server" aus.

  7. Aktivieren Sie das Kontrollkästchen "Aktiver Dokumentcontainer" .

  8. Klicken Sie auf Fertig stellen.

  9. Wenn der MFC-Anwendungs-Assistent die Generierung der Anwendung beendet hat, öffnen Sie die folgenden Dateien mit Projektmappen-Explorer:

    • MyProjview.cpp
  10. Nehmen Sie in MyProjview.cpp die folgenden Änderungen vor:

    • Ersetzen CMyProjView::OnPreparePrintingSie in , den Funktionsinhalt durch den folgenden Code:

      if (!CView::OnPreparePrinting(pInfo))
          return FALSE;
      
      if (!COleDocObjectItem::OnPreparePrinting(this, pInfo))
          return FALSE;
      
      return TRUE;
      

    OnPreparePrinting bietet Druckunterstützung. Dieser Code ersetzt DoPreparePrintingdie Standarddruckvorbereitung.

    Aktive Dokumenteindämmung bietet ein verbessertes Druckschema:

    • Sie können das aktive Dokument zuerst über die IPrint Benutzeroberfläche aufrufen und es anweisen, sich selbst zu drucken. Dies unterscheidet sich von der vorherigen OLE-Eindämmung, in der der Container ein Bild des enthaltenen Elements auf dem Druckerobjekt CDC rendern musste.

    • Wenn dies fehlschlägt, weisen Sie das enthaltene Element an, sich über die IOleCommandTarget Benutzeroberfläche zu drucken.

    • Wenn dies fehlschlägt, erstellen Sie ihr eigenes Rendering des Elements.

    Die statischen Memberfunktionen COleDocObjectItem::OnPrint und COleDocObjectItem::OnPreparePrinting, wie im vorherigen Code implementiert, behandeln dieses verbesserte Druckschema.

  11. Fügen Sie eine eigene Implementierung hinzu, und erstellen Sie die Anwendung.

Siehe auch

Aktive Dokumente-Container