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::OnDraw werden. |
CDocument::m_bPreviewHandlerMode |
Gibt an, dass das CDocument Objekt von prevhost für Rich Preview . Sollte eingecheckt CView::OnDraw werden. |
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 CDocument
Schnittstelle.
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 CDocument
finden Sie unter Serialisierung, Themen zur Dokument-/Ansichtsarchitektur und Erstellung von Dokumenten/Ansichten.
Vererbungshierarchie
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::OnDraw
werden.
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::OnDraw
werden.
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 CDataRecoveryHandler
die 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 COleObjectFactory
abgeleiteten 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 CDocument
von -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::Abort
freigegeben werden soll. FALSE
wenn die Datei mit CFile::Close
freigegeben 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 pSender
die 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 CObject
abgeleiteten 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 CView
abgeleiteten 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