CDocument-Klasse

Stellt die grundlegende Funktionalität für benutzerdefinierte Dokumentklassen bereit.

Syntax

class CDocument : public CCmdTarget

Member

Öffentliche Konstruktoren

Name Beschreibung
CDocument::CDocument Erstellt ein CDocument-Objekt.

Öffentliche Methoden

Name Beschreibung
CDocument::AddView Fügt eine Ansicht an das Dokument an.
CDocument::BeginReadChunks Initialisiert den Blocklesevorgang.
CDocument::CanCloseFrame Erweiterte Außerkraftsetzung; wird aufgerufen, bevor ein Rahmenfenster geschlossen wird, in dem dieses Dokument angezeigt wird.
CDocument::ClearChunkList Löscht die Abschnittsliste.
CDocument::ClearPathName Löscht den Pfad des Dokumentobjekts.
CDocument::DeleteContents Wird aufgerufen, um die Bereinigung des Dokuments durchzuführen.
CDocument::FindChunk Sucht nach einem Block mit der angegebenen GUID.
CDocument::GetAdapter Gibt einen Zeiger auf die Schnittstelle zur Implementierung von IDocument Objekten zurück.
CDocument::GetDocTemplate Gibt einen Zeiger auf die Dokumentvorlage zurück, die den Typ des Dokuments beschreibt.
CDocument::GetFile Gibt einen Zeiger auf das gewünschte CFile Objekt zurück.
CDocument::GetFirstViewPosition Gibt die Position der ersten in der Liste der Ansichten zurück; wird verwendet, um mit der Iteration zu beginnen.
CDocument::GetNextView Durchlaufen Sie die Liste der Ansichten, die dem Dokument zugeordnet sind.
CDocument::GetPathName Gibt den Pfad der Datendatei des Dokuments zurück.
CDocument::GetThumbnail Wird aufgerufen, um eine Bitmap zu erstellen, die vom Miniaturansichtsanbieter zum Anzeigen der Miniaturansicht verwendet werden soll.
CDocument::GetTitle Gibt den Titel des Dokuments zurück.
CDocument::InitializeSearchContent Wird aufgerufen, um Suchinhalte für den Suchhandler zu initialisieren.
CDocument::IsModified Gibt an, ob das Dokument seit dem letzten Speichern geändert wurde.
CDocument::IsSearchAndOrganizeHandler Gibt an, ob diese Objektinstanz CDocument für den Such- und Organisieren-Handler erstellt wurde.
CDocument::LoadDocumentFromStream Wird aufgerufen, um Dokumentdaten aus dem Datenstrom zu laden.
CDocument::OnBeforeRichPreviewFontChanged Wird aufgerufen, bevor die Schriftart "Rich Preview" geändert wird.
CDocument::OnChangedViewList Wird aufgerufen, nachdem eine Ansicht dem Dokument hinzugefügt oder daraus entfernt wurde.
CDocument::OnCloseDocument Wird aufgerufen, um das Dokument zu schließen.
CDocument::OnCreatePreviewFrame Wird vom Framework aufgerufen, wenn ein Vorschauframe für Rich Preview erstellt werden muss.
CDocument::OnDocumentEvent Wird vom Framework als Reaktion auf ein Dokumentereignis aufgerufen.
CDocument::OnDrawThumbnail Überschreiben Sie diese Methode in einer abgeleiteten Klasse, um Inhalt der Miniaturansicht zu zeichnen.
CDocument::OnLoadDocumentFromStream Wird vom Framework aufgerufen, wenn die Dokumentdaten aus dem Datenstrom geladen werden müssen.
CDocument::OnNewDocument Wird aufgerufen, um ein neues Dokument zu erstellen.
CDocument::OnOpenDocument Wird aufgerufen, um ein vorhandenes Dokument zu öffnen.
CDocument::OnPreviewHandlerQueryFocus Leitet den Vorschauhandler an, um den HWND Aufruf der GetFocus Funktion zurückzugeben.
CDocument::OnPreviewHandlerTranslateAccelerator Leitet den Vorschauhandler an, einen Tastaturanschlag zu verarbeiten, der von der Meldungspumpe des Prozesses übergeben wird, in dem der Vorschauhandler ausgeführt wird.
CDocument::OnRichPreviewBackColorChanged Wird aufgerufen, wenn sich die Hintergrundfarbe "Rich Preview" geändert hat.
CDocument::OnRichPreviewFontChanged Wird aufgerufen, wenn sich die Schriftart "Rich Preview" geändert hat.
CDocument::OnRichPreviewSiteChanged Wird aufgerufen, wenn sich die Rich Preview-Website geändert hat.
CDocument::OnRichPreviewTextColorChanged Wird aufgerufen, wenn sich die Rich Preview-Textfarbe geändert hat.
CDocument::OnSaveDocument Wird aufgerufen, um das Dokument auf einem Datenträger zu speichern.
CDocument::OnUnloadHandler Wird vom Framework aufgerufen, wenn der Vorschauhandler entladen wird.
CDocument::PreCloseFrame Wird aufgerufen, bevor das Rahmenfenster geschlossen wird.
CDocument::ReadNextChunkValue Liest den nächsten Blockwert.
CDocument::ReleaseFile Gibt eine Datei frei, um sie für die Verwendung durch andere Anwendungen verfügbar zu machen.
CDocument::RemoveChunk Entfernt einen Block mit angegebenem GUID.
CDocument::RemoveView Trennt eine Ansicht vom Dokument.
CDocument::ReportSaveLoadException Erweiterte Außerkraftsetzung; wird aufgerufen, wenn ein Öffnen- oder Speichervorgang aufgrund einer Ausnahme nicht abgeschlossen werden kann.
CDocument::SaveModified Erweiterte Außerkraftsetzung; wird aufgerufen, um den Benutzer zu fragen, ob das Dokument gespeichert werden soll.
CDocument::SetChunkValue Legt einen Blockwert fest.
CDocument::SetModifiedFlag Legt ein Kennzeichen fest, das angibt, dass Sie das Dokument seit dem letzten Speichern geändert haben.
CDocument::SetPathName Legt den Pfad der vom Dokument verwendeten Datendatei fest.
CDocument::SetTitle Legt den Titel des Dokuments fest.
CDocument::UpdateAllViews Benachrichtigt alle Ansichten, dass das Dokument geändert wurde.

Geschützte Methoden

Name Beschreibung
CDocument::OnFileSendMail Sendet eine E-Mail-Nachricht mit dem angefügten Dokument.
CDocument::OnUpdateFileSendMail Aktiviert den Befehl "E-Mail senden", wenn die E-Mail-Unterstützung vorhanden ist.

Öffentliche Datenmember

Name Beschreibung
CDocument::m_bGetThumbnailMode Gibt an, dass das CDocument Objekt von dllhost für Miniaturansichten erstellt wurde. Sollte eingecheckt CView::OnDrawwerden.
CDocument::m_bPreviewHandlerMode Gibt an, dass das CDocument Objekt von prevhost für Rich Preview. Sollte eingecheckt CView::OnDrawwerden.
CDocument::m_bSearchMode Gibt an, dass das CDocument Objekt von Indexer oder einer anderen Suchanwendung erstellt wurde.
CDocument::m_clrRichPreviewBackColor Gibt die Hintergrundfarbe des Rich Preview-Fensters an. Diese Farbe wird von Host festgelegt.
CDocument::m_clrRichPreviewTextColor Gibt die Vordergrundfarbe des Rich Preview-Fensters an. Diese Farbe wird von Host festgelegt.
CDocument::m_lfRichPreviewFont Gibt die Textschriftart für das Rich Preview-Fenster an. Diese Schriftartinformationen werden vom Host festgelegt.

Hinweise

Ein Dokument stellt die Dateneinheit dar, die der Benutzer in der Regel mit dem Befehl "Datei öffnen" öffnet und mit dem Befehl "Datei speichern" speichert.

CDocument unterstützt Standardvorgänge wie das Erstellen eines Dokuments, das Laden und Speichern. Das Framework bearbeitet Dokumente mithilfe der benutzerdefinierten CDocumentSchnittstelle.

Eine Anwendung kann mehrere Dokumenttypen unterstützen; Eine Anwendung kann z. B. Tabellenkalkulationen und Textdokumente unterstützen. Jeder Dokumenttyp weist eine zugeordnete Dokumentvorlage auf; Die Dokumentvorlage gibt an, welche Ressourcen (z. B. Menü, Symbol oder Zugriffstastentabelle) für diesen Dokumenttyp verwendet werden. Jedes Dokument enthält einen Zeiger auf das zugehörige CDocTemplate Objekt.

Benutzer interagieren mit einem Dokument über die CView ihr zugeordneten Objekte. Eine Ansicht rendert ein Bild des Dokuments in einem Framefenster und interpretiert benutzereingaben als Vorgänge im Dokument. Einem Dokument können mehrere Ansichten zugeordnet sein. Wenn der Benutzer ein Fenster in einem Dokument öffnet, erstellt das Framework eine Ansicht und fügt es an das Dokument an. Die Dokumentvorlage gibt an, welche Art von Ansichts- und Rahmenfenster verwendet wird, um jeden Dokumenttyp anzuzeigen.

Dokumente sind Teil des Standardmäßigen Befehlsroutings des Frameworks und erhalten daher Befehle von Standardkomponenten der Benutzeroberfläche (z. B. dem Menüelement "Datei speichern"). Ein Dokument empfängt Befehle, die von der aktiven Ansicht weitergeleitet werden. Wenn das Dokument keinen bestimmten Befehl behandelt, leitet es den Befehl an die Dokumentvorlage weiter, die ihn verwaltet.

Wenn die Daten eines Dokuments geändert werden, muss jeder seiner Ansichten diese Änderungen widerspiegeln. CDocument stellt die UpdateAllViews Memberfunktion bereit, mit der Sie die Ansichten solcher Änderungen benachrichtigen können, damit sich die Ansichten bei Bedarf neu erstellen können. Das Framework fordert den Benutzer außerdem auf, eine geänderte Datei zu speichern, bevor sie geschlossen wird.

Um Dokumente in einer typischen Anwendung zu implementieren, müssen Sie die folgenden Schritte ausführen:

  • Leiten Sie eine Klasse für jeden Dokumenttyp ab CDocument .

  • Fügen Sie Membervariablen hinzu, um die Daten jedes Dokuments zu speichern.

  • Implementieren Sie Memberfunktionen zum Lesen und Ändern der Dokumentdaten. Die Ansichten des Dokuments sind die wichtigsten Benutzer dieser Memberfunktionen.

  • Überschreiben Sie die CObject::Serialize Memberfunktion in Ihrer Dokumentklasse, um die Daten des Dokuments auf und von einem Datenträger zu schreiben und zu lesen.

CDocument unterstützt das Senden Ihres Dokuments per E-Mail, wenn der E-Mail-Support (MAPI) vorhanden ist. Weitere Informationen finden Sie in den Artikeln MAPI - und MAPI-Support in MFC.

Weitere Informationen CDocumentfinden Sie unter Serialisierung, Themen zur Dokument-/Ansichtsarchitektur und Erstellung von Dokumenten/Ansichten.

Vererbungshierarchie

CObject

CCmdTarget

CDocument

Anforderungen

Header: afxwin.h

CDocument::AddView

Rufen Sie diese Funktion auf, um eine Ansicht an das Dokument anzufügen.

void AddView(CView* pView);

Parameter

pView
Verweist auf die hinzugefügte Ansicht.

Hinweise

Diese Funktion fügt die angegebene Ansicht zur Liste der Ansichten hinzu, die dem Dokument zugeordnet sind; die Funktion legt auch den Dokumentzeiger der Ansicht auf dieses Dokument fest. Das Framework ruft diese Funktion beim Anfügen eines neu erstellten Ansichtsobjekts an ein Dokument auf; Dies geschieht als Reaktion auf einen Befehl "Datei neu", "Datei öffnen" oder "Neues Fenster", oder wenn ein Teilerfenster geteilt wird.

Rufen Sie diese Funktion nur auf, wenn Sie eine Ansicht manuell erstellen und anfügen. In der Regel können Sie das Framework Dokumente und Ansichten verbinden, indem Sie ein CDocTemplate Objekt definieren, um eine Dokumentklasse, Ansichtsklasse und Framefensterklasse zuzuordnen.

Beispiel

// The following example toggles two views in an SDI (single document
// interface) frame window. A design decision must be made as to
// whether to leave the inactive view connected to the document,
// such that the inactive view continues to receive OnUpdate
// notifications from the document. It is usually desirable to
// keep the inactive view continuously in sync with the document, even
// though it is inactive. However, doing so incurs a performance cost,
// as well as the programming cost of implementing OnUpdate hints.
// It may be less expensive, in terms of performance and/or programming,
// to re-sync the inactive view with the document only with it is
// reactivated. This example illustrates this latter approach, by
// reconnecting the newly active view and disconnecting the newly
// inactive view, via calls to CDocument::AddView and RemoveView.

void CMainFrame::OnViewChange(UINT nCmdID)
// There is an ON_COMMAND_RANGE message map entry associated with
// OnViewChange:
// ON_COMMAND_RANGE(ID_VIEW_CHANGE1, ID_VIEW_CHANGE2, &OnViewChange)
{
   CView *pViewAdd;
   CView *pViewRemove;
   CDocument *pDoc = GetActiveDocument();

   // cvView1 and cvView2 are enum members defined in my CMainFrame class
   if ((nCmdID == ID_VIEW_CHANGE1) && (m_currentView == cvView1))
      return;
   if ((nCmdID == ID_VIEW_CHANGE2) && (m_currentView == cvView2))
      return;

   if (nCmdID == ID_VIEW_CHANGE2)
   {
      if (m_pView2 == NULL)
      {
         m_pView1 = GetActiveView();
         m_pView2 = new CMyView2;

         //Note that if OnSize has been overridden in CMyView2
         //and GetDocument() is used in this override it can
         //cause assertions and, if the assertions are ignored,
         //cause access violation.

         m_pView2->Create(NULL, NULL, AFX_WS_DEFAULT_VIEW, rectDefault, this,
                          AFX_IDW_PANE_FIRST + 1, NULL);
      }
      pViewAdd = m_pView2;
      pViewRemove = m_pView1;
      m_currentView = cvView2;
   }
   else
   {
      pViewAdd = m_pView1;
      pViewRemove = m_pView2;
      m_currentView = cvView1;
   }

   // Set the child i.d. of the active view to AFX_IDW_PANE_FIRST,
   // so that CFrameWnd::RecalcLayout will allocate to this
   // "first pane" that portion of   the frame window's client area
   // not allocated to control   bars.  Set the child i.d. of the
   // other view to anything other than AFX_IDW_PANE_FIRST; this
   // examples switches the child id's of the two views.

   int nSwitchChildID = pViewAdd->GetDlgCtrlID();
   pViewAdd->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
   pViewRemove->SetDlgCtrlID(nSwitchChildID);

   // Show the newly active view and hide the inactive view.

   pViewAdd->ShowWindow(SW_SHOW);
   pViewRemove->ShowWindow(SW_HIDE);

   // Connect the newly active view to the document, and
   // disconnect the inactive view.
   pDoc->AddView(pViewAdd);
   pDoc->RemoveView(pViewRemove);

   SetActiveView(pViewAdd);
   RecalcLayout();
}

CDocument::BeginReadChunks

Initialisiert den Blocklesevorgang.

virtual void BeginReadChunks ();

Hinweise

CDocument::CanCloseFrame

Wird vom Framework aufgerufen, bevor ein Rahmenfenster, in dem das Dokument angezeigt wird, geschlossen wird.

virtual BOOL CanCloseFrame(CFrameWnd* pFrame);

Parameter

pFrame
Zeigt auf das Rahmenfenster einer Ansicht, die an das Dokument angefügt ist.

Rückgabewert

Nonzero, wenn es sicher ist, das Rahmenfenster zu schließen; andernfalls 0.

Hinweise

Die Standardimplementierung überprüft, ob es andere Rahmenfenster gibt, die das Dokument anzeigen. Wenn es sich bei dem angegebenen Rahmenfenster um das letzte Fenster handelt, in dem das Dokument angezeigt wird, fordert die Funktion den Benutzer auf, das Dokument zu speichern, wenn es geändert wurde. Überschreiben Sie diese Funktion, wenn Sie eine spezielle Verarbeitung ausführen möchten, wenn ein Framefenster geschlossen wird. Dies ist eine erweiterte Außerkraftsetzung.

CDocument::CDocument

Erstellt ein CDocument-Objekt.

CDocument();

Hinweise

Das Framework behandelt die Dokumenterstellung für Sie. Überschreiben Sie die OnNewDocument Memberfunktion, um die Initialisierung pro Dokument durchzuführen. Dies ist insbesondere bei SDI-Anwendungen (Single Document Interface) wichtig.

CDocument::ClearChunkList

Löscht die Abschnittsliste.

virtual void ClearChunkList ();

Hinweise

CDocument::ClearPathName

Löscht den Pfad des Dokumentobjekts.

virtual void ClearPathName();

Hinweise

Durch das Löschen des Pfads aus einem CDocument Objekt fordert die Anwendung den Benutzer beim nächsten Speichern des Dokuments auf. Dadurch verhält sich ein Befehl "Speichern unter " wie ein Befehl "Speichern unter ".

CDocument::DeleteContents

Vom Framework aufgerufen, um die Daten des Dokuments zu löschen, ohne das CDocument Objekt selbst zu zerstören.

virtual void DeleteContents();

Hinweise

Es wird kurz vor der Zerstörung des Dokuments aufgerufen. Es wird auch aufgerufen, um sicherzustellen, dass ein Dokument leer ist, bevor es wiederverwendet wird. Dies ist besonders wichtig für eine SDI-Anwendung, die nur ein Dokument verwendet; das Dokument wird immer wiederverwendet, wenn der Benutzer ein anderes Dokument erstellt oder öffnet. Rufen Sie diese Funktion auf, um einen Befehl "Alle löschen" oder einen ähnlichen Befehl zu implementieren, der alle Daten des Dokuments löscht. Bei der Standardimplementierung dieser Funktion wird keine Aktion ausgeführt. Überschreiben Sie diese Funktion, um die Daten in Ihrem Dokument zu löschen.

Beispiel

// This example is the handler for an Edit Clear All command.
void CExampleDoc::OnEditClearAll()
{
   DeleteContents();
   UpdateAllViews(NULL);
}

void CExampleDoc::DeleteContents()
{
   // Re-initialize document data here.
}

CDocument::FindChunk

Sucht nach einem Block mit einer angegebenen GUID.

virtual POSITION FindChunk(
    REFCLSID guid,
    DWORD pid);

Parameter

guid
Gibt die GUID eines zu suchenden Abschnitts an.

pid
Gibt eine PID eines zu findenden Abschnitts an.

Rückgabewert

Positionieren Sie die Position in der internen Abschnittsliste, wenn dies erfolgreich ist. Andernfalls NULL.

Hinweise

CDocument::GetAdapter

Gibt einen Zeiger auf ein Objekt zurück, das die IDocument Schnittstelle implementiert.

virtual ATL::IDocument* GetAdapter();

Rückgabewert

Ein Zeiger auf ein Objekt, das die IDocument Schnittstelle implementiert.

Hinweise

CDocument::GetDocTemplate

Rufen Sie diese Funktion auf, um einen Zeiger auf die Dokumentvorlage für diesen Dokumenttyp abzurufen.

CDocTemplate* GetDocTemplate() const;

Rückgabewert

Ein Zeiger auf die Dokumentvorlage für diesen Dokumenttyp oder NULL, wenn das Dokument nicht von einer Dokumentvorlage verwaltet wird.

Beispiel

// This example accesses the doc template object to construct
// a default document name such as SHEET.XLS, where "sheet"
// is the base document name and ".xls" is the file extension
// for the document type.
CString strDefaultDocName, strBaseName, strExt;
CDocTemplate *pDocTemplate = GetDocTemplate();
if (!pDocTemplate->GetDocString(strBaseName, CDocTemplate::docName) || !pDocTemplate->GetDocString(strExt, CDocTemplate::filterExt))
{
   AfxThrowUserException(); // These doc template strings will
                            // be available if you created the application using AppWizard
                            // and specified the file extension as an option for
                            // the document class produced by AppWizard.
}
strDefaultDocName = strBaseName + strExt;

CDocument::GetFile

Rufen Sie diese Memberfunktion auf, um einen Zeiger auf ein CFile Objekt abzurufen.

virtual CFile* GetFile(
    LPCTSTR lpszFileName,
    UINT nOpenFlags,
    CFileException* pError);

Parameter

lpszFileName
Eine Zeichenfolge, die den Pfad zur gewünschten Datei darstellt. Der Pfad kann relativ oder absolut sein.

pError
Ein Zeiger auf ein vorhandenes Datei-Ausnahmeobjekt, das den Abschlussstatus des Vorgangs angibt.

nOpenFlags
Freigabe- und Zugriffsmodus. Gibt die auszuführende Aktion beim Öffnen der Datei an. Sie können optionen kombinieren, die im CFile-Konstruktor CFile::CFile aufgelistet sind, indem Sie den bitweisen OR () -Operator verwenden|. Eine Zugriffsberechtigung und eine Freigabeoption sind erforderlich; die modeCreate Modi sind modeNoInherit optional.

Rückgabewert

Ein Zeiger auf ein CFile-Objekt.

CDocument::GetFirstViewPosition

Rufen Sie diese Funktion auf, um die Position der ersten Ansicht in der Liste der Ansichten abzurufen, die dem Dokument zugeordnet sind.

virtual POSITION GetFirstViewPosition() const;

Rückgabewert

Ein POSITION Wert, der für die Iteration mit der GetNextView Memberfunktion verwendet werden kann.

Beispiel

//To get the first view in the list of views:
//To get the first view in the list of views:
// POSITION pos = GetFirstViewPosition();
// CView* pFirstView = GetNextView(pos);
//
// This example uses CDocument::GetFirstViewPosition
// and GetNextView to repaint each view.
// An easier way to accomplish the same result is to call
// UpdateAllViews(NULL);
void CExampleDoc::OnRepaintAllViews()
{
   POSITION pos = GetFirstViewPosition();
   while (pos != NULL)
   {
      CView *pView = GetNextView(pos);
      pView->UpdateWindow();
   }
}

CDocument::GetNextView

Rufen Sie diese Funktion auf, um alle Ansichten des Dokuments zu durchlaufen.

virtual CView* GetNextView(POSITION& rPosition) const;

Parameter

rPosition
Ein Verweis auf einen POSITION Wert, der von einem vorherigen Aufruf der GetNextView Funktionen oder GetFirstViewPosition Memberfunktionen zurückgegeben wird. Dieser Wert darf nicht sein NULL.

Rückgabewert

Ein Zeiger auf die ansicht, die durch rPosition.

Hinweise

Die Funktion gibt die identifizierte rPosition Ansicht zurück und legt sie dann auf den POSITION Wert der nächsten Ansicht in der Liste festrPosition. Wenn die abgerufene Ansicht die letzte in der Liste ist, wird sie rPosition auf .NULL

Beispiel

//To get the first view in the list of views:
//To get the first view in the list of views:
// POSITION pos = GetFirstViewPosition();
// CView* pFirstView = GetNextView(pos);
//
// This example uses CDocument::GetFirstViewPosition
// and GetNextView to repaint each view.
// An easier way to accomplish the same result is to call
// UpdateAllViews(NULL);
void CExampleDoc::OnRepaintAllViews()
{
   POSITION pos = GetFirstViewPosition();
   while (pos != NULL)
   {
      CView *pView = GetNextView(pos);
      pView->UpdateWindow();
   }
}

CDocument::GetPathName

Rufen Sie diese Funktion auf, um den vollqualifizierten Pfad der Datenträgerdatei des Dokuments abzurufen.

const CString& GetPathName() const;

Rückgabewert

Der vollqualifizierte Pfad des Dokuments. Diese Zeichenfolge ist leer, wenn das Dokument nicht gespeichert wurde oder keine Datenträgerdatei zugeordnet ist.

CDocument::GetThumbnail

Erstellt eine Bitmap, die vom Miniaturansichtsanbieter zum Anzeigen der Miniaturansicht verwendet werden soll.

virtual BOOL GetThumbnail(
    UINT cx,
    HBITMAP* phbmp,
    DWORD* pdwAlpha);

Parameter

cx
Gibt die Breite und Höhe der Bitmap an.

phbmp
Enthält ein Handle für eine Bitmap, wenn die Funktion erfolgreich zurückgegeben wird.

pdwAlpha
Enthält eine DWORD Angabe des Alphakanalwerts, wenn die Funktion erfolgreich zurückgegeben wird.

Rückgabewert

Gibt zurück TRUE , ob eine Bitmap für die Miniaturansicht erfolgreich erstellt wurde; andernfalls FALSE.

Hinweise

CDocument::GetTitle

Rufen Sie diese Funktion auf, um den Titel des Dokuments abzurufen, der normalerweise vom Dateinamen des Dokuments abgeleitet wird.

const CString& GetTitle() const;

Rückgabewert

Der Titel des Dokuments.

CDocument::InitializeSearchContent

Wird aufgerufen, um Suchinhalte für den Suchhandler zu initialisieren.

virtual void InitializeSearchContent ();

Hinweise

Überschreiben Sie diese Methode in einer abgeleiteten Klasse, um Suchinhalte zu initialisieren. Der Inhalt sollte eine Zeichenfolge mit Teilen sein, die durch ";" getrennt sind. Beispiel: "Punkt; Rechteck; ole item".

CDocument::IsModified

Rufen Sie diese Funktion auf, um zu bestimmen, ob das Dokument seit dem letzten Speichern geändert wurde.

virtual BOOL IsModified();

Rückgabewert

Nonzero, wenn das Dokument seit dem letzten Speichern geändert wurde; andernfalls 0.

CDocument::IsSearchAndOrganizeHandler

Gibt an, ob diese Instanz CDocument für den Such- und Organisieren-Handler erstellt wurde.

BOOL IsSearchAndOrganizeHandler() const;

Rückgabewert

Gibt zurück TRUE , ob diese Instanz CDocument für den Such- und Organisieren-Handler erstellt wurde.

Hinweise

Derzeit gibt diese Funktion nur für Rich Preview-Handler zurück TRUE , die in einem Out-of-Process-Server implementiert sind. Sie können die entsprechenden Flags (m_bPreviewHandlerMode, m_bSearchMode, m_bGetThumbnailMode) auf Anwendungsebene festlegen, damit diese Funktion zurückgegeben wird TRUE.

CDocument::LoadDocumentFromStream

Wird aufgerufen, um Dokumentdaten aus einem Datenstrom zu laden.

virtual HRESULT LoadDocumentFromStream(
    IStream* pStream,
    DWORD dwGrfMode);

Parameter

pStream
Ein Zeiger auf einen Datenstrom. Dieser Stream wird von der Shell bereitgestellt.

dwGrfMode
Zugriff auf den Datenstrom.

Rückgabewert

S_OK wenn der Ladevorgang erfolgreich ist, andernfalls HRESULT mit einem Fehlercode.

Hinweise

Sie können diese Methode in einer abgeleiteten Klasse überschreiben, um anzupassen, wie Daten aus dem Datenstrom geladen werden.

CDocument::m_bGetThumbnailMode

Gibt an, dass das CDocument Objekt von dllhost für Miniaturansichten erstellt wurde. Sollte eingecheckt CView::OnDrawwerden.

BOOL m_bGetThumbnailMode;

Hinweise

TRUE gibt an, dass das Dokument von dllhost für Miniaturansichten erstellt wurde.

CDocument::m_bPreviewHandlerMode

Gibt an, dass das CDocument Objekt von prevhost für Rich Preview erstellt wurde. Sollte eingecheckt CView::OnDrawwerden.

BOOL m_bPreviewHandlerMode;

Hinweise

TRUE gibt an, dass das Dokument von prevhost für Rich Preview erstellt wurde.

CDocument::m_bSearchMode

Gibt an, dass das CDocument Objekt von Indexer oder von einer anderen Suchanwendung erstellt wurde.

BOOL m_bSearchMode;

Hinweise

TRUE gibt an, dass das Dokument von Indexer oder von einer anderen Suchanwendung erstellt wurde.

CDocument::m_clrRichPreviewBackColor

Gibt die Hintergrundfarbe des Rich Preview-Fensters an. Diese Farbe wird von Host festgelegt.

COLORREF m_clrRichPreviewBackColor;

Hinweise

CDocument::m_clrRichPreviewTextColor

Gibt die Vordergrundfarbe des Rich Preview-Fensters an. Diese Farbe wird von Host festgelegt.

COLORREF m_clrRichPreviewTextColor;

Hinweise

CDocument::m_lfRichPreviewFont

Gibt die Textschriftart für das Rich Preview-Fenster an. Diese Schriftartinformationen werden vom Host festgelegt.

CFont m_lfRichPreviewFont;

Hinweise

CDocument::OnBeforeRichPreviewFontChanged

Wird aufgerufen, bevor die Rich Preview-Schriftart geändert wird.

virtual void OnBeforeRichPreviewFontChanged();

Hinweise

CDocument::OnChangedViewList

Wird vom Framework aufgerufen, nachdem eine Ansicht dem Dokument hinzugefügt oder daraus entfernt wurde.

virtual void OnChangedViewList();

Hinweise

Die Standardimplementierung dieser Funktion überprüft, ob die letzte Ansicht entfernt wird und in diesem Fall das Dokument löscht. Überschreiben Sie diese Funktion, wenn Sie eine spezielle Verarbeitung durchführen möchten, wenn das Framework eine Ansicht hinzufügt oder entfernt. Wenn ein Dokument beispielsweise geöffnet bleiben soll, auch wenn keine Ansichten vorhanden sind, setzen Sie diese Funktion außer Kraft.

CDocument::OnCloseDocument

Wird vom Framework aufgerufen, wenn das Dokument geschlossen wird, in der Regel als Teil des Befehls "Datei schließen".

virtual void OnCloseDocument();

Hinweise

Die Standardimplementierung dieser Funktion zerstört alle Frames, die zum Anzeigen des Dokuments verwendet werden, schließt die Ansicht, bereinigt den Inhalt des Dokuments und ruft dann die DeleteContents Memberfunktion auf, um die Daten des Dokuments zu löschen.

Überschreiben Sie diese Funktion, wenn Sie eine spezielle Bereinigungsverarbeitung durchführen möchten, wenn das Framework ein Dokument schließt. Wenn das Dokument beispielsweise einen Datensatz in einer Datenbank darstellt, können Sie diese Funktion überschreiben, um die Datenbank zu schließen. Sie sollten die Basisklassenversion dieser Funktion über die Außerkraftsetzung aufrufen.

CDocument::OnCreatePreviewFrame

Wird vom Framework aufgerufen, wenn ein Vorschauframe für Rich Preview erstellt werden muss.

virtual BOOL OnCreatePreviewFrame();

Rückgabewert

Gibt zurück TRUE , wenn der Frame erfolgreich erstellt wird; andernfalls FALSE.

Hinweise

CDocument::OnDocumentEvent

Wird vom Framework als Reaktion auf ein Dokumentereignis aufgerufen.

virtual void OnDocumentEvent(DocumentEvent deEvent);

Parameter

deEvent
[in] Ein aufgezählter Datentyp, der den Ereignistyp beschreibt.

Hinweise

Dokumentereignisse können sich auf mehrere Klassen auswirken. Diese Methode ist für die Behandlung von Dokumentereignissen verantwortlich, die sich auf andere Klassen als die CDocument Klasse auswirken. Derzeit ist CDataRecoveryHandlerdie Klasse die einzige Klasse, die auf Dokumentereignisse reagieren muss. Die CDocument Klasse verfügt über andere übersetzbare Methoden, die für die Behandlung der Auswirkungen auf die CDocument.

In der folgenden Tabelle sind die möglichen Werte und deEvent die ereignisse aufgeführt, denen sie entsprechen.

Wert Entsprechendes Ereignis
onAfterNewDocument Es wurde ein neues Dokument erstellt.
onAfterOpenDocument Ein neues Dokument wurde geöffnet.
onAfterSaveDocument Das Dokument wurde gespeichert.
onAfterCloseDocument Das Dokument wurde geschlossen.

CDocument::OnDrawThumbnail

Überschreiben Sie diese Methode in einer abgeleiteten Klasse, um die Miniaturansicht zu zeichnen.

virtual void OnDrawThumbnail(
    CDC& dc,
    LPRECT lprcBounds);

Parameter

dc
Ein Verweis auf einen Gerätekontext.

lprcBounds
Gibt ein umgebendes Rechteck des Bereichs an, in dem die Miniaturansicht gezeichnet werden soll.

Hinweise

CDocument::OnFileSendMail

Sendet eine Nachricht über den residenten E-Mail-Host (falls vorhanden) mit dem Dokument als Anlage.

void OnFileSendMail();

Hinweise

OnFileSendMail Aufrufe OnSaveDocument zum Serialisieren (Speichern) unbenannter und geänderter Dokumente in eine temporäre Datei, die dann per E-Mail gesendet wird. Wenn das Dokument nicht geändert wurde, ist keine temporäre Datei erforderlich; das Original wird gesendet. OnFileSendMail lädt MAPI32.DLL, wenn sie noch nicht geladen wurde.

Eine spezielle Implementierung OnFileSendMail für COleDocument die korrekten Verarbeitung von Verbunddateien.

CDocument unterstützt das Senden Ihres Dokuments per E-Mail, wenn der E-Mail-Support (MAPI) vorhanden ist. Weitere Informationen finden Sie in den Artikeln MAPI Topics und MAPI Support in MFC.

CDocument::OnLoadDocumentFromStream

Wird vom Framework aufgerufen, wenn die Dokumentdaten aus einem Datenstrom geladen werden müssen.

virtual HRESULT OnLoadDocumentFromStream(
    IStream* pStream,
    DWORD grfMode);

Parameter

pStream
Ein Zeiger auf einen eingehenden Datenstrom.

grfMode
Zugriff auf den Datenstrom.

Rückgabewert

S_OK wenn die Last erfolgreich ist; andernfalls ein Fehlercode.

Hinweise

CDocument::OnNewDocument

Wird vom Framework als Teil des Befehls "Datei neu" aufgerufen.

virtual BOOL OnNewDocument();

Rückgabewert

Nonzero, wenn das Dokument erfolgreich initialisiert wurde; andernfalls 0.

Hinweise

Die Standardimplementierung dieser Funktion ruft die DeleteContents Memberfunktion auf, um sicherzustellen, dass das Dokument leer ist, und markiert das neue Dokument dann als sauber. Überschreiben Sie diese Funktion, um die Datenstruktur für ein neues Dokument zu initialisieren. Sie sollten die Basisklassenversion dieser Funktion über die Außerkraftsetzung aufrufen.

Wenn der Benutzer den Befehl "Neu speichern" in einer SDI-Anwendung auswählt, verwendet das Framework diese Funktion, um das vorhandene Dokument neu zu initialisieren, anstatt ein neues Dokument zu erstellen. Wenn der Benutzer "Datei neu" in einer MDI-Anwendung (Multiple Document Interface) auswählt, erstellt das Framework jedes Mal ein neues Dokument und ruft diese Funktion dann auf, um sie zu initialisieren. Sie müssen den Initialisierungscode in dieser Funktion anstelle des Konstruktors platzieren, damit der Befehl "Datei neu" in SDI-Anwendungen wirksam wird.

Beachten Sie, dass es Fälle gibt, in denen OnNewDocument zweimal aufgerufen wird. Dies geschieht, wenn das Dokument als ActiveX-Dokumentserver eingebettet ist. Die Funktion wird zuerst von der CreateInstance Methode (verfügbar gemacht von der COleObjectFactoryabgeleiteten Klasse) und ein zweites Mal von der InitNew Methode (verfügbar gemacht durch die COleServerDoc-abgeleitete Klasse) aufgerufen.

Beispiel

Die folgenden Beispiele veranschaulichen alternative Methoden zum Initialisieren eines Dokumentobjekts.

// Method 1: In an MDI application, the simplest place to do
// initialization is in the document constructor.  The framework
// always creates a new document object for File New or File Open.
CExampleDoc::CExampleDoc()
{
   // Do initialization of MDI document here.
}

 

// Method 2: In an SDI or MDI application, do all initialization
// in an override of OnNewDocument, if you are certain that
// the initialization is effectively saved upon File Save
// and fully restored upon File Open, via serialization.
BOOL CMyDoc::OnNewDocument()
{
   if (!CDocument::OnNewDocument())
   {
      return FALSE;
   }

   // Do initialization of new document here.

   return TRUE;
}

 

// Method 3: If the initialization of your document is not
// effectively saved and restored by serialization (during File Save
// and File Open), then implement the initialization in single
// function (named InitMyDocument in this example).  Call the
// shared initialization function from overrides of both
// OnNewDocument and OnOpenDocument.
BOOL CExampleDoc::OnNewDocument()
{
   if (!CDocument::OnNewDocument())
   {
      return FALSE;
   }

   InitMyDocument(); // call your shared initialization function

   // If your new document object requires additional initialization
   // not necessary when the document is deserialized via File Open,
   // then perform that additional initialization here.

   return TRUE;
}

CDocument::OnOpenDocument

Wird vom Framework als Teil des Befehls "Datei öffnen" aufgerufen.

virtual BOOL OnOpenDocument(LPCTSTR lpszPathName);

Parameter

lpszPathName
Verweist auf den Pfad des zu öffnenden Dokuments.

Rückgabewert

Nonzero, wenn das Dokument erfolgreich geladen wurde; andernfalls 0.

Hinweise

Die Standardimplementierung dieser Funktion öffnet die angegebene Datei, ruft die DeleteContents Memberfunktion auf, um sicherzustellen, dass das Dokument leer ist, aufruft CObject::Serialize , um den Inhalt der Datei zu lesen, und markiert das Dokument dann als sauber. Überschreiben Sie diese Funktion, wenn Sie einen anderen Als den Archivmechanismus oder den Dateimechanismus verwenden möchten. Sie können z. B. eine Anwendung schreiben, in der Dokumente Datensätze in einer Datenbank darstellen, anstatt dateien zu trennen.

Wenn der Benutzer den Befehl "Datei öffnen" in einer SDI-Anwendung auswählt, verwendet das Framework diese Funktion, um das vorhandene CDocument Objekt neu zu initialisieren, anstatt ein neues Objekt zu erstellen. Wenn der Benutzer "Datei öffnen" in einer MDI-Anwendung auswählt, erstellt das Framework jedes Mal ein neues CDocument Objekt und ruft diese Funktion dann auf, um sie zu initialisieren. Sie müssen den Initialisierungscode in dieser Funktion anstelle des Konstruktors platzieren, damit der Befehl "Datei öffnen" in SDI-Anwendungen wirksam ist.

Beispiel

Die folgenden Beispiele veranschaulichen alternative Methoden zum Initialisieren eines Dokumentobjekts.

// Method 1: In an MDI application, the simplest place to do
// initialization is in the document constructor.  The framework
// always creates a new document object for File New or File Open.
CExampleDoc::CExampleDoc()
{
   // Do initialization of MDI document here.
}

 

// Method 2: In an SDI or MDI application, do all initialization
// in an override of OnNewDocument, if you are certain that
// the initialization is effectively saved upon File Save
// and fully restored upon File Open, via serialization.
BOOL CMyDoc::OnNewDocument()
{
   if (!CDocument::OnNewDocument())
   {
      return FALSE;
   }

   // Do initialization of new document here.

   return TRUE;
}

 

// Method 3: If the initialization of your document is not
// effectively saved and restored by serialization (during File Save
// and File Open), then implement the initialization in single
// function (named InitMyDocument in this example).  Call the
// shared initialization function from overrides of both
// OnNewDocument and OnOpenDocument.
BOOL CExampleDoc::OnNewDocument()
{
   if (!CDocument::OnNewDocument())
   {
      return FALSE;
   }

   InitMyDocument(); // call your shared initialization function

   // If your new document object requires additional initialization
   // not necessary when the document is deserialized via File Open,
   // then perform that additional initialization here.

   return TRUE;
}

 

// Additional example of OnOpenDocument()
BOOL CExampleDoc::OnOpenDocument(LPCTSTR lpszPathName)
{
   if (!CDocument::OnOpenDocument(lpszPathName))
   {
      return FALSE;
   }

   InitMyDocument(); // call your shared initialization function

   return TRUE;
}

CDocument::OnPreviewHandlerQueryFocus

Leitet den Vorschauhandler an, um den HWND abgerufenen Aufruf der GetFocus Funktion zurückzugeben.

virtual HRESULT OnPreviewHandlerQueryFocus(HWND* phwnd);

Parameter

phwnd
[out] Wenn diese Methode zurückgegeben wird, enthält sie einen Zeiger auf den HWND, der von dem Aufrufen der GetFocus Funktion aus dem Vordergrundthread des Vorschauhandlers zurückgegeben wird.

Rückgabewert

Gibt zurück S_OK , wenn dies erfolgreich war; oder ein Fehlerwert andernfalls.

Hinweise

CDocument::OnPreviewHandlerTranslateAccelerator

Leitet den Vorschauhandler an, einen Tastaturanschlag zu verarbeiten, der von der Meldungspumpe des Prozesses übergeben wird, in dem der Vorschauhandler ausgeführt wird.

virtual HRESULT OnPreviewHandlerTranslateAccelerator(MSG* pmsg);

Parameter

pmsg
[in] Ein Zeiger auf eine Fenstermeldung.

Rückgabewert

Wenn die Tastaturanschläge vom Vorschauhandler verarbeitet werden können, verarbeitet der Handler sie und gibt diese zurück S_OK. Wenn der Vorschauhandler die Tastaturanschläge nicht verarbeiten kann, bietet er sie dem Host über IPreviewHandlerFrame::TranslateAccelerator. Wenn der Host die Nachricht verarbeitet, gibt diese Methode zurück S_OK. Wenn der Host die Nachricht nicht verarbeitet, gibt diese Methode zurück S_FALSE.

Hinweise

CDocument::OnRichPreviewBackColorChanged

Wird aufgerufen, wenn sich die Hintergrundfarbe "Rich Preview" geändert hat.

virtual void OnRichPreviewBackColorChanged();

Hinweise

CDocument::OnRichPreviewFontChanged

Wird aufgerufen, wenn sich die Schriftart "Rich Preview" geändert hat.

virtual void OnRichPreviewFontChanged();

Hinweise

CDocument::OnRichPreviewSiteChanged

Wird aufgerufen, wenn sich die Rich Preview-Website geändert hat.

virtual void OnRichPreviewSiteChanged();

Hinweise

CDocument::OnRichPreviewTextColorChanged

Wird aufgerufen, wenn sich die Rich Preview-Textfarbe geändert hat.

virtual void OnRichPreviewTextColorChanged();

Hinweise

CDocument::OnSaveDocument

Wird vom Framework als Teil des Befehls "Datei speichern" oder "Datei speichern unter" aufgerufen.

virtual BOOL OnSaveDocument(LPCTSTR lpszPathName);

Parameter

lpszPathName
Verweist auf den vollqualifizierten Pfad, in dem die Datei gespeichert werden soll.

Rückgabewert

Nonzero, wenn das Dokument erfolgreich gespeichert wurde; andernfalls 0.

Hinweise

Die Standardimplementierung dieser Funktion öffnet die angegebene Datei, ruft CObject::Serialize auf, um die Daten des Dokuments in die Datei zu schreiben, und markiert das Dokument dann als sauber. Überschreiben Sie diese Funktion, wenn Sie eine spezielle Verarbeitung durchführen möchten, wenn das Framework ein Dokument speichert. Sie können z. B. eine Anwendung schreiben, in der Dokumente Datensätze in einer Datenbank darstellen, anstatt dateien zu trennen.

CDocument::OnUnloadHandler

Wird vom Framework aufgerufen, wenn der Vorschauhandler entladen wird.

virtual void OnUnloadHandler();

Hinweise

CDocument::OnUpdateFileSendMail

Aktiviert den Befehl, wenn die ID_FILE_SEND_MAIL E-Mail-Unterstützung (MAPI) vorhanden ist.

void OnUpdateFileSendMail(CCmdUI* pCmdUI);

Parameter

pCmdUI
Ein Zeiger auf das Objekt, das CCmdUI dem ID_FILE_SEND_MAIL Befehl zugeordnet ist.

Hinweise

Andernfalls entfernt die Funktion den ID_FILE_SEND_MAIL Befehl aus dem Menü, einschließlich Trennzeichen oberhalb oder unterhalb des Menüelements entsprechend. MAPI ist aktiviert, wenn MAPI32.DLL sie im Pfad vorhanden ist, und im Abschnitt [Mail] der WIN.INI Datei MAPI=1. Die meisten Anwendungen platzieren diesen Befehl im Menü "Datei".

CDocument unterstützt das Senden Ihres Dokuments per E-Mail, wenn der E-Mail-Support (MAPI) vorhanden ist. Weitere Informationen finden Sie in den Artikeln MAPI Topics und MAPI Support in MFC.

CDocument::PreCloseFrame

Diese Memberfunktion wird vom Framework aufgerufen, bevor das Rahmenfenster zerstört wird.

virtual void PreCloseFrame(CFrameWnd* pFrame);

Parameter

pFrame
Zeigen Sie auf das CFrameWnd zugeordnete CDocument Objekt.

Hinweise

Es kann überschrieben werden, um eine benutzerdefinierte Bereinigung bereitzustellen, aber achten Sie darauf, auch die Basisklasse aufzurufen.

Der Standardwert von PreCloseFrame "does nothing" in CDocument. Die CDocumentvon -abgeleiteten Klassen COleDocument und CRichEditDoc verwenden diese Memberfunktion.

CDocument::ReadNextChunkValue

Liest den nächsten Blockwert.

virtual BOOL ReadNextChunkValue(IFilterChunkValue** ppValue);

Parameter

ppValue
[out] Wenn die Funktion zurückgegeben wird, enthält sie den Wert, ppValue der gelesen wurde.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

CDocument::ReleaseFile

Diese Memberfunktion wird vom Framework aufgerufen, um eine Datei freizugeben und sie für die Verwendung durch andere Anwendungen zur Verfügung zu stellen.

virtual void ReleaseFile(
    CFile* pFile,
    BOOL bAbort);

Parameter

pFile
Ein Zeiger auf das CFile objekt, das losgelassen werden soll.

bAbort
Gibt an, ob die Datei mit einem CFile::Close oder anderen CFile::Abortfreigegeben werden soll. FALSEwenn die Datei mit CFile::Closefreigegeben werden soll ; TRUE wenn die Datei freigegeben werden soll.CFile::Abort

Hinweise

Wenn bAbort dies der Grund ist TRUE, ReleaseFile wird die Datei aufgerufen CFile::Abort, und die Datei wird freigegeben. CFile::Abort löst keine Ausnahme aus.

Wenn bAbort ja FALSE, ReleaseFile werden Aufrufe CFile::Close und die Datei freigegeben.

Überschreiben Sie diese Memberfunktion, um eine Aktion des Benutzers vor der Veröffentlichung der Datei anzufordern.

CDocument::RemoveChunk

Entfernt einen Block mit dem angegebenen GUID.

virtual void RemoveChunk(
    REFCLSID guid,
    DWORD pid);

Parameter

Guid
Gibt den GUID zu entfernenden Block an.

Pid
Gibt den PID zu entfernenden Block an.

Hinweise

CDocument::RemoveView

Rufen Sie diese Funktion auf, um eine Ansicht von einem Dokument zu trennen.

void RemoveView(CView* pView);

Parameter

pView
Verweist auf die Ansicht, die entfernt wird.

Hinweise

Mit dieser Funktion wird die angegebene Ansicht aus der Liste der Ansichten entfernt, die dem Dokument zugeordnet sind; außerdem wird der Dokumentzeiger der Ansicht auf NULL. Diese Funktion wird vom Framework aufgerufen, wenn ein Rahmenfenster geschlossen oder ein Fensterausschnitt eines Teilers geschlossen wird.

Rufen Sie diese Funktion nur auf, wenn Sie eine Ansicht manuell trennen. In der Regel können Sie das Framework Dokumente und Ansichten trennen, indem Sie ein CDocTemplate Objekt definieren, um eine Dokumentklasse, Ansichtsklasse und Framefensterklasse zuzuordnen.

Sehen Sie sich das Beispiel für eine Beispielimplementierung an AddView .

CDocument::ReportSaveLoadException

Wird aufgerufen, wenn beim Speichern oder Laden des Dokuments eine Ausnahme ausgelöst wird (in der Regel a CFileException oder CArchiveException).

virtual void ReportSaveLoadException(
    LPCTSTR lpszPathName,
    CException* e,
    BOOL bSaving,
    UINT nIDPDefault);

Parameter

lpszPathName
Verweist auf den Namen des Dokuments, das gespeichert oder geladen wurde.

e
Verweist auf die Ausnahme, die ausgelöst wurde. Kann NULL sein.

bSaving
Flag, das angibt, welcher Vorgang ausgeführt wurde; nonzero if the document was saved, 0 if the document was loaded.

nIDPDefault
Der Bezeichner der fehlermeldung, die angezeigt werden soll, wenn die Funktion keine spezifischere angibt.

Hinweise

Die Standardimplementierung untersucht das Ausnahmeobjekt und sucht nach einer Fehlermeldung, die die Ursache spezifisch beschreibt. Wenn eine bestimmte Nachricht nicht gefunden wird oder ist e NULL, wird die durch den nIDPDefault Parameter angegebene allgemeine Nachricht verwendet. Die Funktion zeigt dann ein Meldungsfeld mit der Fehlermeldung an. Überschreiben Sie diese Funktion, wenn Sie zusätzliche, angepasste Fehlermeldungen bereitstellen möchten. Dies ist eine erweiterte Außerkraftsetzung.

CDocument::SaveModified

Vom Framework aufgerufen, bevor ein geändertes Dokument geschlossen werden soll.

virtual BOOL SaveModified();

Rückgabewert

Nonzero, wenn es sicher ist, das Dokument fortzusetzen und zu schließen; 0, wenn das Dokument nicht geschlossen werden soll.

Hinweise

Die Standardimplementierung dieser Funktion zeigt ein Meldungsfeld an, in dem der Benutzer gefragt wird, ob die Änderungen am Dokument gespeichert werden sollen, sofern vorhanden. Überschreiben Sie diese Funktion, wenn ihr Programm eine andere Eingabeaufforderungsprozedur erfordert. Dies ist eine erweiterte Außerkraftsetzung.

CDocument::SetChunkValue

Legt einen Blockwert fest.

virtual BOOL SetChunkValue (IFilterChunkValue* pValue);

Parameter

pValue
Gibt einen festzulegenden Blockwert an.

Rückgabewert

Ungleich Null, wenn erfolgreich, andernfalls 0 (Null).

Hinweise

CDocument::SetModifiedFlag

Rufen Sie diese Funktion auf, nachdem Sie Änderungen am Dokument vorgenommen haben.

virtual void SetModifiedFlag(BOOL bModified = TRUE);

Parameter

bModified
Flag, das angibt, ob das Dokument geändert wurde.

Hinweise

Indem Sie diese Funktion konsistent aufrufen, stellen Sie sicher, dass das Framework den Benutzer auffordert, Änderungen zu speichern, bevor Sie ein Dokument schließen. In der Regel sollten Sie den Standardwert TRUE für den bModified Parameter verwenden. Um ein Dokument als sauber (unverändert) zu markieren, rufen Sie diese Funktion mit einem Wert von FALSE.

CDocument::SetPathName

Rufen Sie diese Funktion auf, um den vollqualifizierten Pfad der Datenträgerdatei des Dokuments anzugeben.

virtual void SetPathName(
    LPCTSTR lpszPathName,
    BOOL bAddToMRU = TRUE);

Parameter

lpszPathName
Verweist auf die Zeichenfolge, die als Pfad für das Dokument verwendet werden soll.

bAddToMRU
Bestimmt, ob der Dateiname der zuletzt verwendeten Dateiliste (MRU) hinzugefügt wird. If TRUE, the filename is added; if FALSE, it is not added.

Hinweise

Abhängig vom Wert des bAddToMRU Pfads wird der MRU-Liste, die von der Anwendung verwaltet wird, hinzugefügt oder nicht hinzugefügt. Beachten Sie, dass einige Dokumente keiner Datenträgerdatei zugeordnet sind. Rufen Sie diese Funktion nur auf, wenn Sie die Standardimplementierung zum Öffnen und Speichern von Dateien überschreiben, die vom Framework verwendet werden.

CDocument::SetTitle

Rufen Sie diese Funktion auf, um den Titel des Dokuments anzugeben (die Zeichenfolge, die in der Titelleiste eines Rahmenfensters angezeigt wird).

virtual void SetTitle(LPCTSTR lpszTitle);

Parameter

lpszTitle
Verweist auf die Zeichenfolge, die als Titel des Dokuments verwendet werden soll.

Hinweise

Durch Aufrufen dieser Funktion werden die Titel aller Framefenster aktualisiert, in denen das Dokument angezeigt wird.

CDocument::UpdateAllViews

Rufen Sie diese Funktion auf, nachdem das Dokument geändert wurde.

void UpdateAllViews(
    CView* pSender,
    LPARAM lHint = 0L,
    CObject* pHint = NULL);

Parameter

pSender
Verweist auf die Ansicht, die das Dokument geändert hat oder NULL wenn alle Ansichten aktualisiert werden sollen.

lHint
Enthält Informationen zur Änderung.

pHint
Verweist auf ein Objekt, das Informationen zur Änderung speichert.

Hinweise

Sie sollten diese Funktion aufrufen, nachdem Sie die SetModifiedFlag Memberfunktion aufgerufen haben. Diese Funktion informiert jede ansicht, die an das Dokument angefügt ist, mit Ausnahme der durch pSenderdie Ansicht angegebenen, dass das Dokument geändert wurde. Sie rufen diese Funktion in der Regel aus Ihrer Ansichtsklasse auf, nachdem der Benutzer das Dokument über eine Ansicht geändert hat.

Diese Funktion ruft die CView::OnUpdate Memberfunktion für jede Ansicht des Dokuments auf, mit Ausnahme der sendenden Ansicht, übergeben und lHintübergebenpHint. Verwenden Sie diese Parameter, um Informationen an die Ansichten zu den änderungen an dem Dokument vorgenommenen Änderungen zu übergeben. Sie können Informationen mithilfe lHint und/oder einer CObjectabgeleiteten Klasse codieren, um Informationen zu den Änderungen zu speichern und ein Objekt dieser Klasse zu übergeben.pHint Überschreiben Sie die CView::OnUpdate Memberfunktion in der CViewabgeleiteten Klasse, um die Aktualisierung der Anzeige der Ansicht basierend auf den übergebenen Informationen zu optimieren.

Beispiel

void CExampleDoc::OnUpdateAllViews()
{
   UpdateAllViews(NULL);
}

Siehe auch

MFC-Beispiel MDIDOCVW
MFC-Beispiel SNAPVW
MFC-Beispiel NPP
CCmdTarget Klasse
Hierarchiediagramm
CCmdTarget Klasse
CView Klasse
CDocTemplate Klasse