CDocument
Klasa
Udostępnia podstawowe funkcje klas dokumentów zdefiniowanych przez użytkownika.
Składnia
class CDocument : public CCmdTarget
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CDocument::CDocument |
CDocument Tworzy obiekt. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CDocument::AddView |
Dołącza widok do dokumentu. |
CDocument::BeginReadChunks |
Inicjuje odczyt fragmentu. |
CDocument::CanCloseFrame |
Zaawansowane zastępowalne; przed zamknięciem okna ramki wyświetlającego ten dokument. |
CDocument::ClearChunkList |
Czyści listę fragmentów. |
CDocument::ClearPathName |
Czyści ścieżkę obiektu dokumentu. |
CDocument::DeleteContents |
Wywoływana w celu oczyszczenia dokumentu. |
CDocument::FindChunk |
Szuka fragmentu z określonym identyfikatorem GUID. |
CDocument::GetAdapter |
Zwraca wskaźnik do obiektu implementowania IDocument interfejsu. |
CDocument::GetDocTemplate |
Zwraca wskaźnik do szablonu dokumentu, który opisuje typ dokumentu. |
CDocument::GetFile |
Zwraca wskaźnik do żądanego CFile obiektu. |
CDocument::GetFirstViewPosition |
Zwraca pozycję pierwszego na liście widoków; służy do rozpoczęcia iteracji. |
CDocument::GetNextView |
Iteruje listę widoków skojarzonych z dokumentem. |
CDocument::GetPathName |
Zwraca ścieżkę pliku danych dokumentu. |
CDocument::GetThumbnail |
Wywoływana w celu utworzenia mapy bitowej, która ma być używana przez dostawcę miniatur do wyświetlania miniatur. |
CDocument::GetTitle |
Zwraca tytuł dokumentu. |
CDocument::InitializeSearchContent |
Wywoływana w celu zainicjowania zawartości wyszukiwania dla programu obsługi wyszukiwania. |
CDocument::IsModified |
Wskazuje, czy dokument został zmodyfikowany od czasu jego ostatniego zapisania. |
CDocument::IsSearchAndOrganizeHandler |
Informuje, czy to wystąpienie CDocument obiektu zostało utworzone dla programu obsługi wyszukiwania i organizowania. |
CDocument::LoadDocumentFromStream |
Wywoływane w celu załadowania danych dokumentu ze strumienia. |
CDocument::OnBeforeRichPreviewFontChanged |
Wywoływana przed zmianą czcionki rich preview. |
CDocument::OnChangedViewList |
Wywoływana po dodaniu lub usunięciu widoku z dokumentu. |
CDocument::OnCloseDocument |
Wywołana, aby zamknąć dokument. |
CDocument::OnCreatePreviewFrame |
Wywoływana przez platformę, gdy musi utworzyć ramkę w wersji zapoznawczej dla programu Rich Preview. |
CDocument::OnDocumentEvent |
Wywoływana przez strukturę w odpowiedzi na zdarzenie dokumentu. |
CDocument::OnDrawThumbnail |
Zastąp tę metodę w klasie pochodnej, aby narysować zawartość miniatury. |
CDocument::OnLoadDocumentFromStream |
Wywoływana przez platformę, gdy musi załadować dane dokumentu ze strumienia. |
CDocument::OnNewDocument |
Wywoływana w celu utworzenia nowego dokumentu. |
CDocument::OnOpenDocument |
Wywoływana w celu otwarcia istniejącego dokumentu. |
CDocument::OnPreviewHandlerQueryFocus |
Kieruje program obsługi w wersji zapoznawczej, aby zwracał HWND element z wywołania GetFocus funkcji. |
CDocument::OnPreviewHandlerTranslateAccelerator |
Kieruje program obsługi w wersji zapoznawczej do obsługi naciśnięć przekazywanych z pompy komunikatów procesu, w którym jest uruchomiona procedura obsługi w wersji zapoznawczej. |
CDocument::OnRichPreviewBackColorChanged |
Wywoływane po zmianie koloru tła zaawansowanego podglądu. |
CDocument::OnRichPreviewFontChanged |
Wywoływana, gdy czcionka rich preview została zmieniona. |
CDocument::OnRichPreviewSiteChanged |
Wywoływana, gdy witryna rich preview uległa zmianie. |
CDocument::OnRichPreviewTextColorChanged |
Wywoływane po zmianie koloru tekstu podglądu sformatowania. |
CDocument::OnSaveDocument |
Wywoływana w celu zapisania dokumentu na dysku. |
CDocument::OnUnloadHandler |
Wywoływana przez platformę, gdy program obsługi w wersji zapoznawczej jest zwalniany. |
CDocument::PreCloseFrame |
Wywoływana przed zamknięciem okna ramowego. |
CDocument::ReadNextChunkValue |
Odczytuje następną wartość fragmentu. |
CDocument::ReleaseFile |
Zwalnia plik, aby udostępnić go do użytku przez inne aplikacje. |
CDocument::RemoveChunk |
Usuwa fragment z określonym GUID elementem . |
CDocument::RemoveView |
Odłącza widok od dokumentu. |
CDocument::ReportSaveLoadException |
Zaawansowane zastępowalne; wywoływana, gdy nie można ukończyć operacji otwierania lub zapisywania z powodu wyjątku. |
CDocument::SaveModified |
Zaawansowane zastępowalne; wywołana, aby zapytać użytkownika, czy dokument powinien zostać zapisany. |
CDocument::SetChunkValue |
Ustawia wartość fragmentu. |
CDocument::SetModifiedFlag |
Ustawia flagę wskazującą, że dokument został zmodyfikowany od czasu ostatniego zapisania. |
CDocument::SetPathName |
Ustawia ścieżkę pliku danych używanego przez dokument. |
CDocument::SetTitle |
Ustawia tytuł dokumentu. |
CDocument::UpdateAllViews |
Powiadamia wszystkie widoki, które dokument został zmodyfikowany. |
Metody chronione
Nazwa/nazwisko | opis |
---|---|
CDocument::OnFileSendMail |
Wysyła wiadomość e-mail z dołączonym dokumentem. |
CDocument::OnUpdateFileSendMail |
Włącza polecenie Wyślij pocztę, jeśli obsługa poczty jest obecna. |
Publiczne elementy członkowskie danych
Nazwa/nazwisko | opis |
---|---|
CDocument::m_bGetThumbnailMode |
Określa, że CDocument obiekt został utworzony przez dllhost dla miniatur. Należy zaewidencjonować .CView::OnDraw |
CDocument::m_bPreviewHandlerMode |
Określa, że CDocument obiekt został utworzony przez prevhost dla .Rich Preview Należy zaewidencjonować .CView::OnDraw |
CDocument::m_bSearchMode |
Określa, że CDocument obiekt został utworzony przez indeksator lub inną aplikację wyszukiwania. |
CDocument::m_clrRichPreviewBackColor |
Określa kolor tła okna podglądu zaawansowanego. Ten kolor jest ustawiany przez hosta. |
CDocument::m_clrRichPreviewTextColor |
Określa kolor pierwszego planu okna podglądu sformatowanego. Ten kolor jest ustawiany przez hosta. |
CDocument::m_lfRichPreviewFont |
Określa czcionkę tekstu dla okna Podgląd sformatowany. Te informacje o czcionkach są ustawiane przez hosta. |
Uwagi
Dokument reprezentuje jednostkę danych, którą użytkownik zwykle otwiera za pomocą polecenia Plik Otwórz i zapisuje za pomocą polecenia Zapisz plik.
CDocument
obsługuje standardowe operacje, takie jak tworzenie dokumentu, ładowanie go i zapisywanie. Struktura manipuluje dokumentami przy użyciu interfejsu zdefiniowanego przez CDocument
program .
Aplikacja może obsługiwać więcej niż jeden typ dokumentu; na przykład aplikacja może obsługiwać zarówno arkusze kalkulacyjne, jak i dokumenty tekstowe. Każdy typ dokumentu ma skojarzony szablon dokumentu; Szablon dokumentu określa, jakie zasoby (na przykład menu, ikona lub tabela akceleratora) są używane dla tego typu dokumentu. Każdy dokument zawiera wskaźnik do skojarzonego CDocTemplate
obiektu.
Użytkownicy wchodzą w interakcję z dokumentem za pośrednictwem CView
skojarzonych z nim obiektów. Widok renderuje obraz dokumentu w oknie ramowym i interpretuje dane wejściowe użytkownika jako operacje w dokumencie. Z dokumentem może być skojarzonych wiele widoków. Gdy użytkownik otworzy okno w dokumencie, platforma utworzy widok i dołączy go do dokumentu. Szablon dokumentu określa, jakiego typu okna widoku i ramki są używane do wyświetlania każdego typu dokumentu.
Dokumenty są częścią standardowego routingu poleceń platformy i w związku z tym odbierają polecenia ze standardowych składników interfejsu użytkownika (takich jak element menu Zapisywanie pliku). Dokument odbiera polecenia przekazywane przez aktywny widok. Jeśli dokument nie obsługuje danego polecenia, przekazuje polecenie do szablonu dokumentu, który nim zarządza.
Po zmodyfikowaniu danych dokumentu każdy z jego widoków musi odzwierciedlać te modyfikacje. CDocument
udostępnia funkcję składową umożliwiającą UpdateAllViews
powiadamianie o widokach takich zmian, dzięki czemu widoki mogą w razie potrzeby przemalować same siebie. Platforma monituje również użytkownika o zapisanie zmodyfikowanego pliku przed jego zamknięciem.
Aby zaimplementować dokumenty w typowej aplikacji, należy wykonać następujące czynności:
Utwórz klasę dla
CDocument
każdego typu dokumentu.Dodaj zmienne członkowskie do przechowywania danych każdego dokumentu.
Zaimplementuj funkcje składowe do odczytywania i modyfikowania danych dokumentu. Widoki dokumentu są najważniejszymi użytkownikami tych funkcji składowych.
Zastąpi funkcję składową
CObject::Serialize
w klasie dokumentów, aby zapisywać i odczytywać dane dokumentu z dysku i z tego dysku.
CDocument
obsługuje wysyłanie dokumentu pocztą, jeśli istnieje obsługa poczty e-mail (MAPI). Zobacz artykuły MAPI i MAPI Support in MFC (Obsługa MAPI i MAPI w MFC).
Aby uzyskać więcej informacji na temat CDocument
programu , zobacz Serializacja, Tematy dotyczące architektury dokumentów/widoków oraz Tworzenie dokumentu/widoku.
Hierarchia dziedziczenia
CDocument
Wymagania
Nagłówek: afxwin.h
CDocument::AddView
Wywołaj tę funkcję, aby dołączyć widok do dokumentu.
void AddView(CView* pView);
Parametry
pView
Wskazuje dodawany widok.
Uwagi
Ta funkcja dodaje określony widok do listy widoków skojarzonych z dokumentem; funkcja ustawia również wskaźnik dokumentu widoku na ten dokument. Struktura wywołuje tę funkcję podczas dołączania nowo utworzonego obiektu widoku do dokumentu; Dzieje się tak w odpowiedzi na polecenie Nowy plik, Otwórz plik lub Nowe okno albo gdy zostanie podzielone okno podziału.
Wywołaj tę funkcję tylko wtedy, gdy ręcznie tworzysz i dołączasz widok. Zazwyczaj platforma umożliwia łączenie dokumentów i widoków przez zdefiniowanie CDocTemplate
obiektu w celu skojarzenia klasy dokumentów, klasy widoków i klasy okien ramowych.
Przykład
// 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
Inicjuje odczyt fragmentu.
virtual void BeginReadChunks ();
Uwagi
CDocument::CanCloseFrame
Wywoływana przez strukturę przed zamknięciem okna ramowego wyświetlającego dokument.
virtual BOOL CanCloseFrame(CFrameWnd* pFrame);
Parametry
pFrame
Wskazuje okno ramki widoku dołączonego do dokumentu.
Wartość zwracana
Nonzero, jeśli jest bezpieczny, aby zamknąć okno ramowe; w przeciwnym razie 0.
Uwagi
Domyślna implementacja sprawdza, czy istnieją inne okna ramek wyświetlające dokument. Jeśli określone okno ramki jest ostatnim, który wyświetla dokument, funkcja monituje użytkownika o zapisanie dokumentu, jeśli został zmodyfikowany. Zastąpi tę funkcję, jeśli chcesz wykonać specjalne przetwarzanie po zamknięciu okna ramki. Jest to zaawansowane przesłonięcia.
CDocument::CDocument
CDocument
Tworzy obiekt.
CDocument();
Uwagi
Platforma obsługuje tworzenie dokumentów. Zastąpić funkcję składową OnNewDocument
w celu przeprowadzenia inicjalizacji dla poszczególnych dokumentów. Jest to szczególnie ważne w aplikacjach interfejsu jednoekrotnego (SDI).
CDocument::ClearChunkList
Czyści listę fragmentów.
virtual void ClearChunkList ();
Uwagi
CDocument::ClearPathName
Czyści ścieżkę obiektu dokumentu.
virtual void ClearPathName();
Uwagi
Wyczyszczenie ścieżki z CDocument
obiektu powoduje, że aplikacja wyświetli użytkownikowi monit o zapisanie dokumentu. Dzięki temu polecenie Zapisz zachowuje się jak polecenie Zapisz jako.
CDocument::DeleteContents
Wywoływana przez platformę w celu usunięcia danych dokumentu bez niszczenia CDocument
samego obiektu.
virtual void DeleteContents();
Uwagi
Jest wywoływana tuż przed zniszczeniem dokumentu. Jest on również wywoływany w celu zapewnienia, że dokument jest pusty przed ponownym użyciem. Jest to szczególnie ważne w przypadku aplikacji SDI, która używa tylko jednego dokumentu; dokument jest ponownie używany za każdym razem, gdy użytkownik tworzy lub otwiera inny dokument. Wywołaj tę funkcję, aby zaimplementować polecenie "Edytuj wyczyść wszystko" lub podobne, które usuwa wszystkie dane dokumentu. Domyślna implementacja tej funkcji nic nie robi. Zastąpij tę funkcję, aby usunąć dane w dokumencie.
Przykład
// 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
Szuka fragmentu z określonym identyfikatorem GUID.
virtual POSITION FindChunk(
REFCLSID guid,
DWORD pid);
Parametry
guid
Określa identyfikator GUID fragmentu do znalezienia.
pid
Określa identyfikator PID fragmentu do znalezienia.
Wartość zwracana
Pozycja na wewnętrznej liście fragmentów, jeśli się powiedzie. W przeciwnym razie NULL
.
Uwagi
CDocument::GetAdapter
Zwraca wskaźnik do obiektu implementowania interfejsu IDocument
.
virtual ATL::IDocument* GetAdapter();
Wartość zwracana
Wskaźnik do obiektu implementowania interfejsu IDocument
.
Uwagi
CDocument::GetDocTemplate
Wywołaj tę funkcję, aby uzyskać wskaźnik do szablonu dokumentu dla tego typu dokumentu.
CDocTemplate* GetDocTemplate() const;
Wartość zwracana
Wskaźnik do szablonu dokumentu dla tego typu dokumentu lub wartość NULL, jeśli dokument nie jest zarządzany przez szablon dokumentu.
Przykład
// 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
Wywołaj tę funkcję składową, aby uzyskać wskaźnik do CFile
obiektu.
virtual CFile* GetFile(
LPCTSTR lpszFileName,
UINT nOpenFlags,
CFileException* pError);
Parametry
lpszFileName
Ciąg, który jest ścieżką do żądanego pliku. Ścieżka może być względna lub bezwzględna.
pError
Wskaźnik do istniejącego obiektu wyjątku pliku, który wskazuje stan ukończenia operacji.
nOpenFlags
Udostępnianie i tryb dostępu. Określa akcję do wykonania podczas otwierania pliku. Opcje wymienione w konstruktorze CFile::CFile
CFile można połączyć za pomocą operatora bitowego OR (|
). Wymagane jest jedno uprawnienie dostępu i jedna opcja udziału; modeCreate
tryby i modeNoInherit
są opcjonalne.
Wartość zwracana
Wskaźnik do CFile
obiektu.
CDocument::GetFirstViewPosition
Wywołaj tę funkcję, aby uzyskać pozycję pierwszego widoku na liście widoków skojarzonych z dokumentem.
virtual POSITION GetFirstViewPosition() const;
Wartość zwracana
POSITION
Wartość, która może służyć do iteracji z funkcją składowąGetNextView
.
Przykład
//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
Wywołaj tę funkcję, aby iterować wszystkie widoki dokumentu.
virtual CView* GetNextView(POSITION& rPosition) const;
Parametry
rPosition
Odwołanie do POSITION
wartości zwracanej przez poprzednie wywołanie funkcji składowych GetNextView
lub GetFirstViewPosition
. Ta wartość nie może mieć wartości NULL
.
Wartość zwracana
Wskaźnik do widoku zidentyfikowanego przez rPosition
.
Uwagi
Funkcja zwraca widok zidentyfikowany przez rPosition
, a następnie ustawia rPosition
wartość POSITION
następnego widoku na liście. Jeśli pobrany widok jest ostatnim na liście, rPosition
zostanie ustawiona wartość NULL
.
Przykład
//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
Wywołaj tę funkcję, aby uzyskać w pełni kwalifikowaną ścieżkę pliku dysku dokumentu.
const CString& GetPathName() const;
Wartość zwracana
W pełni kwalifikowana ścieżka dokumentu. Ten ciąg jest pusty, jeśli dokument nie został zapisany lub nie ma skojarzonego z nim pliku dysku.
CDocument::GetThumbnail
Tworzy mapę bitową używaną przez dostawcę miniatur do wyświetlania miniatury.
virtual BOOL GetThumbnail(
UINT cx,
HBITMAP* phbmp,
DWORD* pdwAlpha);
Parametry
cx
Określa szerokość i wysokość mapy bitowej.
phbmp
Zawiera uchwyt do mapy bitowej, gdy funkcja zwróci powodzenie.
pdwAlpha
DWORD
Zawiera określenie wartości kanału alfa, gdy funkcja zwróci pomyślnie.
Wartość zwracana
Zwraca TRUE
wartość , jeśli mapa bitowa miniatury została utworzona pomyślnie; w przeciwnym razie FALSE
.
Uwagi
CDocument::GetTitle
Wywołaj tę funkcję, aby uzyskać tytuł dokumentu, który zazwyczaj pochodzi z nazwy pliku dokumentu.
const CString& GetTitle() const;
Wartość zwracana
Tytuł dokumentu.
CDocument::InitializeSearchContent
Wywoływana w celu zainicjowania zawartości wyszukiwania dla programu obsługi wyszukiwania.
virtual void InitializeSearchContent ();
Uwagi
Zastąp tę metodę w klasie pochodnej, aby zainicjować zawartość wyszukiwania. Zawartość powinna być ciągiem z częściami rozdzielanymi znakami ";". Na przykład "punkt; prostokąt; element ole".
CDocument::IsModified
Wywołaj tę funkcję, aby określić, czy dokument został zmodyfikowany od czasu jego ostatniego zapisania.
virtual BOOL IsModified();
Wartość zwracana
Nonzero, jeśli dokument został zmodyfikowany od czasu jego ostatniego zapisania; w przeciwnym razie 0.
CDocument::IsSearchAndOrganizeHandler
Informuje, czy to wystąpienie CDocument
zostało utworzone dla programu obsługi wyszukiwania i organizowania.
BOOL IsSearchAndOrganizeHandler() const;
Wartość zwracana
Zwraca wartość TRUE
, jeśli to wystąpienie CDocument
zostało utworzone dla programu obsługi wyszukiwania i organizowania.
Uwagi
Obecnie ta funkcja zwraca TRUE
tylko programy obsługi rich preview zaimplementowane na serwerze przetwarzania poza serwerem przetwarzania. Możesz ustawić odpowiednie flagi (m_bPreviewHandlerMode
, m_bSearchMode
, m_bGetThumbnailMode
) na poziomie aplikacji, aby ta funkcja zwróciła wartość TRUE
.
CDocument::LoadDocumentFromStream
Wywoływane w celu załadowania danych dokumentu ze strumienia.
virtual HRESULT LoadDocumentFromStream(
IStream* pStream,
DWORD dwGrfMode);
Parametry
pStream
Wskaźnik do strumienia. Ten strumień jest dostarczany przez powłokę.
dwGrfMode
Tryb dostępu do strumienia.
Wartość zwracana
S_OK
jeśli operacja ładowania zakończy się pomyślnie, w przeciwnym razie HRESULT
zostanie wyświetlony kod błędu.
Uwagi
Tę metodę można zastąpić w klasie pochodnej, aby dostosować sposób ładowania danych ze strumienia.
CDocument::m_bGetThumbnailMode
Określa, że CDocument
obiekt został utworzony przez dllhost dla miniatur. Należy zaewidencjonować .CView::OnDraw
BOOL m_bGetThumbnailMode;
Uwagi
TRUE
wskazuje, że dokument został utworzony przez bibliotekę dllhost dla miniatur.
CDocument::m_bPreviewHandlerMode
Określa, że CDocument
obiekt został utworzony przez prevhost dla rich preview. Należy zaewidencjonować .CView::OnDraw
BOOL m_bPreviewHandlerMode;
Uwagi
TRUE
wskazuje, że dokument został utworzony przez prevhost dla programu Rich Preview.
CDocument::m_bSearchMode
Określa, że CDocument
obiekt został utworzony przez indeksator lub inną aplikację wyszukiwania.
BOOL m_bSearchMode;
Uwagi
TRUE
wskazuje, że dokument został utworzony przez indeksator lub inną aplikację wyszukiwania.
CDocument::m_clrRichPreviewBackColor
Określa kolor tła okna podglądu zaawansowanego. Ten kolor jest ustawiany przez hosta.
COLORREF m_clrRichPreviewBackColor;
Uwagi
CDocument::m_clrRichPreviewTextColor
Określa kolor pierwszego planu okna podglądu sformatowanego. Ten kolor jest ustawiany przez hosta.
COLORREF m_clrRichPreviewTextColor;
Uwagi
CDocument::m_lfRichPreviewFont
Określa czcionkę tekstu dla okna Podgląd sformatowany. Te informacje o czcionkach są ustawiane przez hosta.
CFont m_lfRichPreviewFont;
Uwagi
CDocument::OnBeforeRichPreviewFontChanged
Wywoływana przed zmianą czcionki Rich Preview.
virtual void OnBeforeRichPreviewFontChanged();
Uwagi
CDocument::OnChangedViewList
Wywoływana przez platformę po dodaniu lub usunięciu widoku z dokumentu.
virtual void OnChangedViewList();
Uwagi
Domyślna implementacja tej funkcji sprawdza, czy ostatni widok jest usuwany, a jeśli tak, usuwa dokument. Zastąpi tę funkcję, jeśli chcesz wykonać specjalne przetwarzanie, gdy platforma dodaje lub usuwa widok. Jeśli na przykład chcesz, aby dokument pozostał otwarty nawet wtedy, gdy nie ma dołączonych do niego widoków, przesłoń tę funkcję.
CDocument::OnCloseDocument
Wywoływana przez platformę, gdy dokument jest zamknięty, zazwyczaj w ramach polecenia Zamknij plik.
virtual void OnCloseDocument();
Uwagi
Domyślna implementacja tej funkcji niszczy wszystkie ramki używane do wyświetlania dokumentu, zamyka widok, czyści zawartość dokumentu, a następnie wywołuje DeleteContents
funkcję składową, aby usunąć dane dokumentu.
Zastąpi tę funkcję, jeśli chcesz wykonać specjalne przetwarzanie oczyszczania, gdy struktura zamknie dokument. Jeśli na przykład dokument reprezentuje rekord w bazie danych, możesz zastąpić tę funkcję, aby zamknąć bazę danych. Należy wywołać wersję klasy bazowej tej funkcji z przesłonięcia.
CDocument::OnCreatePreviewFrame
Wywoływana przez platformę, gdy musi utworzyć ramkę w wersji zapoznawczej dla programu Rich Preview.
virtual BOOL OnCreatePreviewFrame();
Wartość zwracana
Zwraca TRUE
wartość , jeśli ramka została utworzona pomyślnie; w przeciwnym razie FALSE
.
Uwagi
CDocument::OnDocumentEvent
Wywoływana przez strukturę w odpowiedzi na zdarzenie dokumentu.
virtual void OnDocumentEvent(DocumentEvent deEvent);
Parametry
deEvent
[in] Wyliczony typ danych, który opisuje typ zdarzenia.
Uwagi
Zdarzenia dokumentu mogą mieć wpływ na wiele klas. Ta metoda jest odpowiedzialna za obsługę zdarzeń dokumentów, które mają wpływ na klasy inne niż CDocument
Klasa. Obecnie jedyną klasą, która musi odpowiadać na zdarzenia dokumentu, jest CDataRecoveryHandler
Klasa. Klasa CDocument
ma inne metody, które można zastąpić, odpowiedzialne za obsługę wpływu na CDocument
element .
W poniższej tabeli wymieniono możliwe wartości i deEvent
zdarzenia, z którymi odpowiadają.
Wartość | Odpowiadające zdarzenie |
---|---|
onAfterNewDocument |
Utworzono nowy dokument. |
onAfterOpenDocument |
Został otwarty nowy dokument. |
onAfterSaveDocument |
Dokument został zapisany. |
onAfterCloseDocument |
Dokument został zamknięty. |
CDocument::OnDrawThumbnail
Zastąp tę metodę w klasie pochodnej, aby narysować miniaturę.
virtual void OnDrawThumbnail(
CDC& dc,
LPRECT lprcBounds);
Parametry
dc
Odwołanie do kontekstu urządzenia.
lprcBounds
Określa prostokąt ograniczenia obszaru, w którym ma zostać narysowana miniatura.
Uwagi
CDocument::OnFileSendMail
Wysyła wiadomość za pośrednictwem hosta poczty rezydentnej (jeśli istnieje) z dokumentem jako załącznikiem.
void OnFileSendMail();
Uwagi
OnFileSendMail
wywołania OnSaveDocument
serializowania (zapisywania) dokumentów bez tytułu i modyfikacji do pliku tymczasowego, który następnie jest wysyłany za pośrednictwem poczty elektronicznej. Jeśli dokument nie został zmodyfikowany, plik tymczasowy nie jest wymagany; oryginał jest wysyłany. OnFileSendMail
ładuje MAPI32.DLL, jeśli nie został jeszcze załadowany.
Specjalna implementacja OnFileSendMail
obsługi COleDocument
plików złożonych poprawnie.
CDocument
obsługuje wysyłanie dokumentu pocztą, jeśli istnieje obsługa poczty e-mail (MAPI). Zobacz artykuły Tematy MAPI i obsługa MAPI w MFC.
CDocument::OnLoadDocumentFromStream
Wywoływana przez platformę, gdy musi załadować dane dokumentu ze strumienia.
virtual HRESULT OnLoadDocumentFromStream(
IStream* pStream,
DWORD grfMode);
Parametry
pStream
Wskaźnik do strumienia przychodzącego.
grfMode
Tryb dostępu do strumienia.
Wartość zwracana
S_OK
jeśli obciążenie zakończy się pomyślnie; w przeciwnym razie kod błędu.
Uwagi
CDocument::OnNewDocument
Wywoływana przez strukturę w ramach polecenia File New.
virtual BOOL OnNewDocument();
Wartość zwracana
Nonzero, jeśli dokument został pomyślnie zainicjowany; w przeciwnym razie 0.
Uwagi
Domyślna implementacja tej funkcji wywołuje DeleteContents
funkcję składową, aby upewnić się, że dokument jest pusty, a następnie oznacza nowy dokument jako czysty. Zastąpij tę funkcję, aby zainicjować strukturę danych dla nowego dokumentu. Należy wywołać wersję klasy bazowej tej funkcji z przesłonięcia.
Jeśli użytkownik wybierze polecenie Plik nowy w aplikacji SDI, struktura używa tej funkcji do ponownego zainicjowania istniejącego dokumentu, a nie utworzenia nowego. Jeśli użytkownik wybierze pozycję Plik nowy w aplikacji interfejsu wielu dokumentów (MDI), platforma tworzy nowy dokument za każdym razem, a następnie wywołuje tę funkcję, aby ją zainicjować. Należy umieścić kod inicjowania w tej funkcji zamiast w konstruktorze, aby polecenie File New było skuteczne w aplikacjach SDI.
Należy pamiętać, że istnieją przypadki, w których OnNewDocument
jest wywoływana dwukrotnie. Dzieje się tak, gdy dokument jest osadzony jako serwer dokumentów ActiveX. Funkcja jest najpierw wywoływana przez metodę CreateInstance
(uwidoczniona przez COleObjectFactory
klasę pochodną) i po raz drugi przez InitNew
metodę (uwidoczniona przez klasę pochodną COleServerDoc
).
Przykład
W poniższych przykładach przedstawiono alternatywne metody inicjowania obiektu dokumentu.
// 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
Wywoływana przez strukturę jako część polecenia Otwórz plik.
virtual BOOL OnOpenDocument(LPCTSTR lpszPathName);
Parametry
lpszPathName
Wskazuje ścieżkę dokumentu do otwarcia.
Wartość zwracana
Nonzero, jeśli dokument został pomyślnie załadowany; w przeciwnym razie 0.
Uwagi
Domyślna implementacja tej funkcji otwiera określony plik, wywołuje DeleteContents
funkcję składową, aby upewnić się, że dokument jest pusty, wywołuje polecenie CObject::Serialize
odczytu zawartości pliku, a następnie oznacza dokument jako czysty. Zastąpi tę funkcję, jeśli chcesz użyć czegoś innego niż mechanizm archiwum lub mechanizm plików. Możesz na przykład napisać aplikację, w której dokumenty reprezentują rekordy w bazie danych, a nie oddzielne pliki.
Jeśli użytkownik wybierze polecenie Plik Otwórz w aplikacji SDI, struktura używa tej funkcji do ponownego zainicjowania istniejącego CDocument
obiektu, a nie utworzenia nowego. Jeśli użytkownik wybierze plik Otwórz w aplikacji MDI, struktura tworzy nowy CDocument
obiekt za każdym razem, a następnie wywołuje tę funkcję, aby ją zainicjować. Musisz umieścić kod inicjowania w tej funkcji zamiast w konstruktorze, aby polecenie File Open było skuteczne w aplikacjach SDI.
Przykład
W poniższych przykładach przedstawiono alternatywne metody inicjowania obiektu dokumentu.
// 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
Kieruje program obsługi w wersji zapoznawczej w celu zwrócenia pobranego HWND
elementu z wywołania GetFocus
funkcji.
virtual HRESULT OnPreviewHandlerQueryFocus(HWND* phwnd);
Parametry
phwnd
[out] Gdy ta metoda zwróci, zawiera wskaźnik do HWND zwrócony z wywołania GetFocus
funkcji z wątku pierwszego planu programu obsługi w wersji zapoznawczej.
Wartość zwracana
Zwraca S_OK
wartość w przypadku powodzenia; lub wartość błędu w przeciwnym razie.
Uwagi
CDocument::OnPreviewHandlerTranslateAccelerator
Kieruje program obsługi w wersji zapoznawczej do obsługi naciśnięć przekazywanych z pompy komunikatów procesu, w którym jest uruchomiona procedura obsługi w wersji zapoznawczej.
virtual HRESULT OnPreviewHandlerTranslateAccelerator(MSG* pmsg);
Parametry
pmsg
[in] Wskaźnik do komunikatu okna.
Wartość zwracana
Jeśli komunikat naciśnięcia może zostać przetworzony przez procedurę obsługi w wersji zapoznawczej, program obsługi przetwarza go i zwraca wartość S_OK
. Jeśli program obsługi w wersji zapoznawczej nie może przetworzyć komunikatu naciśnięcia, oferuje go hostowi za pośrednictwem polecenia IPreviewHandlerFrame::TranslateAccelerator
. Jeśli host przetwarza komunikat, ta metoda zwraca wartość S_OK
. Jeśli host nie przetworzy komunikatu, ta metoda zwraca wartość S_FALSE
.
Uwagi
CDocument::OnRichPreviewBackColorChanged
Wywoływane po zmianie koloru tła zaawansowanego podglądu.
virtual void OnRichPreviewBackColorChanged();
Uwagi
CDocument::OnRichPreviewFontChanged
Wywoływana po zmianie czcionki Rich Preview.
virtual void OnRichPreviewFontChanged();
Uwagi
CDocument::OnRichPreviewSiteChanged
Wywoływana po zmianie witryny rich preview.
virtual void OnRichPreviewSiteChanged();
Uwagi
CDocument::OnRichPreviewTextColorChanged
Wywoływana po zmianie koloru tekstu podglądu sformatowania.
virtual void OnRichPreviewTextColorChanged();
Uwagi
CDocument::OnSaveDocument
Wywoływana przez strukturę jako część polecenia Zapisz plik lub Zapisz plik jako.
virtual BOOL OnSaveDocument(LPCTSTR lpszPathName);
Parametry
lpszPathName
Wskazuje w pełni kwalifikowaną ścieżkę, do której należy zapisać plik.
Wartość zwracana
Nonzero, jeśli dokument został pomyślnie zapisany; w przeciwnym razie 0.
Uwagi
Domyślna implementacja tej funkcji otwiera określony plik, wywołuje metodę CObject::Serialize
zapisywania danych dokumentu w pliku, a następnie oznacza dokument jako czysty. Zastąpi tę funkcję, jeśli chcesz wykonać specjalne przetwarzanie podczas zapisywania dokumentu przez strukturę. Możesz na przykład napisać aplikację, w której dokumenty reprezentują rekordy w bazie danych, a nie oddzielne pliki.
CDocument::OnUnloadHandler
Wywoływana przez platformę, gdy program obsługi w wersji zapoznawczej zostanie zwolniony.
virtual void OnUnloadHandler();
Uwagi
CDocument::OnUpdateFileSendMail
ID_FILE_SEND_MAIL
Włącza polecenie, jeśli jest obecna obsługa poczty (MAPI).
void OnUpdateFileSendMail(CCmdUI* pCmdUI);
Parametry
pCmdUI
Wskaźnik do obiektu skojarzonego CCmdUI
z poleceniem ID_FILE_SEND_MAIL
.
Uwagi
W przeciwnym razie funkcja usuwa ID_FILE_SEND_MAIL
polecenie z menu, w tym separatory powyżej lub poniżej elementu menu odpowiednio. Interfejs MAPI jest włączony, jeśli MAPI32.DLL
znajduje się w ścieżce i w sekcji WIN.INI
[Mail] pliku MAPI=1. Większość aplikacji umieszcza to polecenie w menu Plik.
CDocument
obsługuje wysyłanie dokumentu pocztą, jeśli istnieje obsługa poczty e-mail (MAPI). Zobacz artykuły Tematy MAPI i obsługa MAPI w MFC.
CDocument::PreCloseFrame
Ta funkcja składowa jest wywoływana przez strukturę przed zniszczeniem okna ramki.
virtual void PreCloseFrame(CFrameWnd* pFrame);
Parametry
pFrame
Wskaźnik do CFrameWnd
obiektu, który zawiera skojarzony CDocument
obiekt.
Uwagi
Można go zastąpić w celu zapewnienia oczyszczania niestandardowego, ale należy również wywołać klasę bazową.
Wartość domyślna nic nie ma w elemecie PreCloseFrame
CDocument
. Klasy CDocument
pochodne COleDocument
CRichEditDoc
i używają tej funkcji składowej.
CDocument::ReadNextChunkValue
Odczytuje następną wartość fragmentu.
virtual BOOL ReadNextChunkValue(IFilterChunkValue** ppValue);
Parametry
ppValue
[out] Gdy funkcja zwróci wartość, ppValue
zawiera wartość odczytaną.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
CDocument::ReleaseFile
Ta funkcja składowa jest wywoływana przez strukturę, aby zwolnić plik, udostępniając go do użytku przez inne aplikacje.
virtual void ReleaseFile(
CFile* pFile,
BOOL bAbort);
Parametry
pFile
Wskaźnik do CFile
obiektu, który ma zostać zwolniony.
bAbort
Określa, czy plik ma zostać wydany przy użyciu polecenia CFile::Close
lub CFile::Abort
. FALSE
jeśli plik ma zostać zwolniony przy użyciu programu CFile::Close
; TRUE
jeśli plik ma zostać zwolniony przy użyciu polecenia CFile::Abort
.
Uwagi
Jeśli bAbort
parametr to TRUE
, ReleaseFile
wywołuje CFile::Abort
element , a plik jest zwalniany. CFile::Abort
nie zgłosi wyjątku.
Jeśli bAbort
parametr ma FALSE
wartość , ReleaseFile
wywołania CFile::Close
i plik jest zwalniany.
Zastąpi tę funkcję składową, aby wymagać od użytkownika akcji przed wydaniem pliku.
CDocument::RemoveChunk
Usuwa fragment z określonym GUID
elementem .
virtual void RemoveChunk(
REFCLSID guid,
DWORD pid);
Parametry
Guid
Określa GUID
fragment do usunięcia.
Pid
Określa PID
fragment do usunięcia.
Uwagi
CDocument::RemoveView
Wywołaj tę funkcję, aby odłączyć widok od dokumentu.
void RemoveView(CView* pView);
Parametry
pView
Wskazuje usuwany widok.
Uwagi
Ta funkcja usuwa określony widok z listy widoków skojarzonych z dokumentem; ustawia również wskaźnik dokumentu widoku na NULL
wartość . Ta funkcja jest wywoływana przez platformę, gdy okno ramki jest zamknięte lub zostanie zamknięte okienko okna podziału.
Wywołaj tę funkcję tylko wtedy, gdy ręcznie odłączasz widok. Zazwyczaj platforma umożliwia odłączanie dokumentów i widoków przez zdefiniowanie CDocTemplate
obiektu w celu skojarzenia klasy dokumentów, klasy widoków i klasy okien ramowych.
Zapoznaj się z przykładem AddView
przykładowej implementacji.
CDocument::ReportSaveLoadException
Wywoływana, jeśli podczas zapisywania lub ładowania dokumentu jest zgłaszany wyjątek (zazwyczaj lub CFileException
CArchiveException
).
virtual void ReportSaveLoadException(
LPCTSTR lpszPathName,
CException* e,
BOOL bSaving,
UINT nIDPDefault);
Parametry
lpszPathName
Wskazuje nazwę dokumentu, który został zapisany lub załadowany.
e
Wskazuje na wyjątek, który został zgłoszony. Może to być NULL
.
bSaving
Flaga wskazująca, jaka operacja była w toku; niezerowe, jeśli dokument został zapisany, 0, jeśli dokument był ładowany.
nIDPDefault
Identyfikator komunikatu o błędzie, który ma być wyświetlany, jeśli funkcja nie określa bardziej szczegółowego.
Uwagi
Domyślna implementacja sprawdza obiekt wyjątku i szuka komunikatu o błędzie, który konkretnie opisuje przyczynę. Jeśli określony komunikat nie zostanie znaleziony lub ma e
NULL
wartość , zostanie użyty ogólny komunikat określony przez nIDPDefault
parametr . Następnie funkcja wyświetla pole komunikatu zawierające komunikat o błędzie. Zastąpi tę funkcję, jeśli chcesz udostępnić dodatkowe, dostosowane komunikaty o błędach. Jest to zaawansowane przesłonięcia.
CDocument::SaveModified
Wywoływana przez strukturę przed zamknięciem zmodyfikowanego dokumentu.
virtual BOOL SaveModified();
Wartość zwracana
Nonzero, jeśli jest bezpieczny, aby kontynuować i zamknąć dokument; 0, jeśli dokument nie powinien być zamknięty.
Uwagi
Domyślna implementacja tej funkcji wyświetla pole komunikatu z pytaniem użytkownika, czy zapisać zmiany w dokumencie, jeśli zostały wprowadzone. Zastąp tę funkcję, jeśli program wymaga innej procedury monitowania. Jest to zaawansowane przesłonięcia.
CDocument::SetChunkValue
Ustawia wartość fragmentu.
virtual BOOL SetChunkValue (IFilterChunkValue* pValue);
Parametry
pValue
Określa wartość fragmentu do ustawienia.
Wartość zwracana
Bezzerowe, jeśli się powiedzie; w przeciwnym razie 0.
Uwagi
CDocument::SetModifiedFlag
Wywołaj tę funkcję po wprowadzeniu jakichkolwiek modyfikacji dokumentu.
virtual void SetModifiedFlag(BOOL bModified = TRUE);
Parametry
bModified
Flaga wskazująca, czy dokument został zmodyfikowany.
Uwagi
Dzięki spójnemu wywoływaniu tej funkcji upewnij się, że platforma monituje użytkownika o zapisanie zmian przed zamknięciem dokumentu. Zazwyczaj należy użyć wartości domyślnej TRUE
parametru bModified
. Aby oznaczyć dokument jako czysty (niezmodyfikowany), wywołaj tę funkcję z wartością FALSE
.
CDocument::SetPathName
Wywołaj tę funkcję, aby określić w pełni kwalifikowaną ścieżkę pliku dysku dokumentu.
virtual void SetPathName(
LPCTSTR lpszPathName,
BOOL bAddToMRU = TRUE);
Parametry
lpszPathName
Wskazuje ciąg, który ma być używany jako ścieżka dokumentu.
bAddToMRU
Określa, czy nazwa pliku jest dodawana do listy plików ostatnio używanych (MRU). Jeśli TRUE
nazwa pliku zostanie dodana; jeśli FALSE
parametr nie zostanie dodany.
Uwagi
W zależności od wartości ścieżki bAddToMRU
jest dodawana lub nie jest dodawana do listy MRU obsługiwanej przez aplikację. Należy pamiętać, że niektóre dokumenty nie są skojarzone z plikiem dysku. Wywołaj tę funkcję tylko wtedy, gdy zastąpisz domyślną implementację otwierania i zapisywania plików używanych przez platformę.
CDocument::SetTitle
Wywołaj tę funkcję, aby określić tytuł dokumentu (ciąg wyświetlany na pasku tytułu okna ramki).
virtual void SetTitle(LPCTSTR lpszTitle);
Parametry
lpszTitle
Wskazuje ciąg, który ma być używany jako tytuł dokumentu.
Uwagi
Wywołanie tej funkcji aktualizuje tytuły wszystkich okien ramek, które wyświetlają dokument.
CDocument::UpdateAllViews
Wywołaj tę funkcję po zmodyfikowaniu dokumentu.
void UpdateAllViews(
CView* pSender,
LPARAM lHint = 0L,
CObject* pHint = NULL);
Parametry
pSender
Wskazuje widok, który zmodyfikował dokument, lub NULL
jeśli wszystkie widoki mają zostać zaktualizowane.
lHint
Zawiera informacje o modyfikacji.
pHint
Wskazuje obiekt przechowując informacje o modyfikacji.
Uwagi
Tę funkcję należy wywołać po wywołaniu funkcji składowej SetModifiedFlag
. Ta funkcja informuje każdy widok dołączony do dokumentu, z wyjątkiem widoku określonego przez pSender
element , że dokument został zmodyfikowany. Zazwyczaj ta funkcja jest wywoływana z klasy widoków po zmianie dokumentu przez użytkownika za pomocą widoku.
Ta funkcja wywołuje CView::OnUpdate
funkcję składową dla każdego widoku dokumentu, z wyjątkiem widoku wysyłania, przekazywania pHint
i lHint
. Użyj tych parametrów, aby przekazać informacje do widoków dotyczących modyfikacji wprowadzonych w dokumencie. Informacje można kodować przy użyciu metody lHint
i/lub można zdefiniować klasę pochodną CObject
do przechowywania informacji o modyfikacjach i przekazać obiekt tej klasy przy użyciu metody pHint
. Zastąp funkcję składową w CView
klasie -pochodnejCView::OnUpdate
, aby zoptymalizować aktualizację wyświetlania widoku na podstawie przekazanych informacji.
Przykład
void CExampleDoc::OnUpdateAllViews()
{
UpdateAllViews(NULL);
}
Zobacz też
Przykład MFC MDIDOCVW
Przykład MFC SNAPVW
Przykład MFC NPP
CCmdTarget
Klasa
Wykres hierarchii
CCmdTarget
Klasa
CView
Klasa
CDocTemplate
Klasa