Udostępnij za pośrednictwem


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 GUIDelementem .
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 CDocumentprogram .

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 CDocumentprogramu , zobacz Serializacja, Tematy dotyczące architektury dokumentów/widoków oraz Tworzenie dokumentu/widoku.

Hierarchia dziedziczenia

CObject

CCmdTarget

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 CDocumentelement .

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 COleObjectFactoryklasę 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 CDocumentpochodne 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::Abortelement , a plik jest zwalniany. CFile::Abort nie zgłosi wyjątku.

Jeśli bAbort parametr ma FALSEwartość , 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 GUIDelementem .

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 NULLwartość . 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 NULLwartość , 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 TRUEnazwa pliku zostanie dodana; jeśli FALSEparametr 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 pSenderelement , ż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ą CObjectdo przechowywania informacji o modyfikacjach i przekazać obiekt tej klasy przy użyciu metody pHint. Zastąp funkcję składową w CViewklasie -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