Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Najprostszym i najbardziej zalecanym sposobem utworzenia aktywnej aplikacji kontenera dokumentów jest utworzenie aplikacji kontenera MFC EXE przy użyciu Kreatora aplikacji MFC, a następnie zmodyfikowanie aplikacji w celu obsługi przechowywania aktywnych dokumentów.
Aby utworzyć aktywną aplikację kontenera dokumentów
W menu Plik kliknij pozycję Projektz podmenu Nowy .
W okienku po lewej stronie kliknij pozycję Typ projektu Visual C++ .
Wybierz pozycję Aplikacja MFC w okienku po prawej stronie.
Nadaj projektowi nazwę MyProj, kliknij przycisk OK.
Wybierz stronę Obsługa dokumentów złożonych .
Wybierz opcję Kontener lub Kontener/Pełny serwer .
Zaznacz pole wyboru Aktywny kontener dokumentów .
Kliknij przycisk Finish (Zakończ).
Gdy Kreator aplikacji MFC zakończy generowanie aplikacji, otwórz następujące pliki przy użyciu Eksploratora rozwiązań:
- MyProjview.cpp
W MyProjview.cpp wprowadź następujące zmiany:
W
CMyProjView::OnPreparePrintingpliku zastąp zawartość funkcji następującym kodem:if (!CView::OnPreparePrinting(pInfo)) return FALSE; if (!COleDocObjectItem::OnPreparePrinting(this, pInfo)) return FALSE; return TRUE;
OnPreparePrintingzapewnia obsługę drukowania. Ten kod zastępujeDoPreparePrinting, element który jest domyślnym przygotowaniem wydruku.Zawieranie aktywnych dokumentów zapewnia ulepszony schemat drukowania:
Najpierw możesz wywołać aktywny dokument za pośrednictwem jego
IPrintinterfejsu i poinformować go, aby wydrukował sam dokument. Różni się to od poprzedniego zawierania OLE, w którym kontener musiał renderować obraz zawartego elementu na obiekcie drukarkiCDC.Jeśli to się nie powiedzie, poinformuj zawarty element, aby wydrukował się za pośrednictwem interfejsu
IOleCommandTargetJeśli to się nie powiedzie, utwórz własne renderowanie elementu.
Statyczne funkcje składowe
COleDocObjectItem::OnPrintiCOleDocObjectItem::OnPreparePrinting, zgodnie z implementacją w poprzednim kodzie, obsługują ten ulepszony schemat drukowania.Dodaj własną implementację i skompiluj aplikację.