Rysowanie
klasa CDC
|
|
[początek strony]
-
[początek strony]
-
-
Klasa widoku CView
MFC przejmuje większość zadań aplikacja podczas przygotowania
i przebiegu wydruku:
- poinformowanie o liczbie stron wydruku
- umiejętność drukowania (czyli rysowania na
kontekście drukarki) części dokumentu, gdy pożądany jest
wydruk tylko niektórych stron
- przydzielanie i zwalnianie obiektów GDI
wykorzystywanych podczas drukowania
- wysyłanie kodów sterujących do drukarki
przed wydrukiem strony (np. dla zmiany orientacji strony)
- Wirtualne funkcje klasy CView umożliwiające
zmianę standardowego sposobu obsługi wydruków:
- CView::OnPreparePrinting
- wywoływana gdy dokument ma zostać wydrukowany lub ma
zostać wyświetlony podgląd wydruku
- parametrem jest obiekt klasy CPrintInfo, za pośrednictwem
którego można m.in. zmienić liczbę stron wydruku oraz określić,
czy ma zostać wykonane drukowanie czy podgląd wydruku
- standardowa implementacja tej funkcji jest pusta, aby
rozpocząć wydruk lub wyświetlanie podglądu wydruku należy
wywołać CView::DoPreparePrinting (ta funkcja wyświetli
także dialog wydruku jeśli aktualną akcją nie jest
generowanie podglądu)
- CView::OnBeginPrinting
- jest miejscem, w którym można
dokonać alokacji obiektów GDI wykorzystywanych tylko w
drukowaniu (docelowy kontekt drukarki jest przekazywany jako
parametr tej funkcji)
- standardowa implementacja tej funkcji jest pusta
- CView::OnPrepareDC
- wspólna funkcja wywoływana przy rysowaniu na ekranie i
przy drukowaniu; jeśli aktualną akcją jest drukowanie
parametr będący wskaźnikiem na obiekt klasy CPrintInfo
jest różny od NULL
- można zatrzymać drukowanie poprzez ustawienie CPrintInfo::m_bContinuePrinting
na FALSE
- CView::OnPrint
- dokonuje rzeczywistego wydruku jako rysowania na kontekście
przekazanym jako parametr
- standardowa implementacja wywołuje CView::OnDraw
- CView::OnEndPrinting
- miejsce zwalniania obiektów GDI wykorzystanych podczas
drukowania przydzielonych w CView::OnBeginPrinting
[początek strony]
-
-
Schemat drukowania dokumentów
wielostronicowych:
-
CView::OnPreparePrinting
(z możliwością wywołania CView::DoPreparePrinting,
która wyświetla dialog wydruku)
-
CView::OnBeginPrinting
(możliwość zmiany całkowitej długości drukowanego
dokumentu)
-
CDC::StartDoc (rozpoczęcie
zadania drukowania)
-
CView::OnPrepareDC
(inicjalizacja strony, np viewport)
-
CDC::StartPage (rozpoczęcie
wydruku strony)
-
CView::OnPrint (wydruk
strony)
-
CDC::EndPage (zakończenie
wydruku strony)
-
CDC::EndDoc (zakończenie
całego zadania drukowania)
Zakończenie drukowania
dokumentu, gdy nie ma możliwości wcześniejszego sprawdzenia
liczby stron:
-
Drukowanie nagłówków i stopek
-
nadpisać CView::OnPrint
i oprócz drukowania zawartości strony dodać kod rysujący
na docelowym kontekście nagłówek i stopkę
-
jeśli nie ma wystarczająco dużo
miejsca trzeba zmniejszyć obszar drukowania trzymany w CPrintInfo::m_rectDraw
-
Podgląd wydruku
-
CPreviewDC - specjalna
klasa wykorzystywana przy generowaniu podglądów wydruków
(nieudokumentowana)
-
obiekt tej klasy jest
generowany przez aplikację MFC i naśladowane są wszystkie
czynności drukowania z tym kontekstem jako docelowym
[początek strony]
[początek strony]
|