Architektura Podgląd wydruku
W tym artykule wyjaśniono, jak ramy MFC implementuje funkcje podglądu wydruku.Omówione tematy obejmują:
Proces Podgląd wydruku.
Modyfikowanie podglądu wydruku
Podgląd wydruku jest nieco różnią się od ekranu, wyświetlania i drukowania, ponieważ zamiast bezpośrednio Rysowanie obrazu na urządzeniu, aplikacja musi symulować drukarki przy użyciu ekranu.Aby uwzględnić to, biblioteka klas Microsoft Foundation definiuje specjalnej klasy (nieudokumentowanych) pochodzące z Klasa CDC, zwane CPreviewDC.Wszystkie CDC obiekty zawierają dwa konteksty urządzenia, ale zazwyczaj są identyczne.W CPreviewDC obiektu są różne: pierwsza drukarka symulowane reprezentuje, a drugi ekran, na którym dane wyjściowe są wyświetlane.
Proces Podgląd wydruku
Gdy użytkownik wybierze polecenie Podgląd wydruku, z pliku tworzy ramy menu, CPreviewDC obiektu.W każdym przypadku, gdy aplikacja wykonuje operację, która ustawia cecha kontekstu urządzenia drukarki, ramach wykonuje również podobnych operacji na ekranie kontekstu urządzenia.Na przykład aplikacja wybiera czcionkę do druku, ramach wybiera czcionki do wyświetlania na ekranie symulujący czcionka drukarki.W każdym przypadku, gdy aplikacja wyśle dane wyjściowe do drukarki, ramach zamiast wysyła dane wyjściowe na ekranie.
Podgląd wydruku również różni się od drukowania w kolejności, że rysuje każdej strony dokumentu.Podczas drukowania, ramy wciąż wydruku pętli, dopóki nie wykonał zakres stron.Podczas podglądu wydruku jedną lub dwie strony są wyświetlane w dowolnym momencie, a następnie aplikacja oczekuje; Brak dalszych stron są wyświetlane, dopóki użytkownik nie odpowie.Podczas podglądu wydruku, aplikacja musi również odpowiadać WM_PAINT wiadomości, tak jak podczas zwykłego ekranu.
CView::OnPreparePrinting Funkcja jest wywoływana, gdy tryb podglądu jest wywoływany, podobnie jak na początku zadania drukowania.Struktura CPrintInfo Struktury przekazany do funkcji zawiera kilku członków, których wartości można ustawić dostosowanie niektórych cech operacji podglądu wydruku.Na przykład można ustawić m_nNumPreviewPages Członkowskie, aby określić, czy chcesz wyświetlić podgląd dokumentu w trybie jednej strony lub dwóch stron.
Modyfikowanie widoku Podgląd wydruku
Dość łatwo można zmodyfikować zachowanie i wygląd podglądu wydruku na wiele sposobów.Na przykład możesz, między innymi:
Spowodować okno podglądu wydruku wyświetlić pasek przewijania, aby ułatwić dostęp do dowolnej strony dokumentu.
Przyczyna Podgląd wydruku, aby utrzymać pozycję użytkownika w dokumencie przez rozpoczęciem obrazu wyświetlanego na bieżącej stronie.
Spowodować zainicjowanie różnych wykonywanych na podglądzie wydruku i drukowania.
Przyczyna Podgląd wydruku, aby wyświetlić numery stron w własnych formatów.
Jeśli wiedzieć, jak długo trwa dokumentu i wywołać SetMaxPage na odpowiednią wartość ramach informacji tych można używać w trybie podglądu, jak również podczas drukowania.Po ramach wie, że długość dokumentu, to może dostarczyć okno podglądu scroll bar, co pozwala na stronie i z powrotem w dokumencie w trybie podglądu.Jeśli jeszcze nie ustawić długość dokumentu, ramy nie może się znajdować pole przewijania, aby wskazać bieżącą pozycję, dzięki czemu w ramach nie powoduje dodania paska przewijania.W tym przypadku użytkownik musi użyć Następna strona i Poprzednia strona przyciski na pasku sterowania okno podglądu do strony w dokumencie.
Podgląd wydruku, mogą być przydatne go do przypisania wartości do m_nCurPage członek CPrintInfo, chociaż byłoby nigdy nie zrobić do zwykłego drukowania.Podczas drukowania w zwykłym, członek ten przenosi informacje z RAM do swojej klasy widoku.Jest to, jak ramach informuje widoku strony, która ma być drukowana.
Natomiast, gdy tryb podglądu wydruku jest uruchomiona, m_nCurPage Członkowskich przenosi informacje w odwrotnym kierunku: z widoku RAM.Ramy wykorzystuje wartość tego członka do określenia, można wyświetlić najpierw podglądu strony, która.Domyślna wartość tego członka jest 1, więc pierwszej strony dokumentu jest początkowo wyświetlany.Można zastąpić OnPreparePrinting do tego członka zestawu do numeru strony przeglądana w czasie wywołano polecenie Podgląd wydruku.W ten sposób stosowania utrzymuje bieżącą pozycję użytkownika podczas przenoszenia ze zwykłego trybu wyświetlania na tryb podglądu wydruku.
Czasami może być OnPreparePrinting do wykonywania różnych inicjowania w zależności od tego, czy zostanie wywołany dla zadania drukowania lub podglądu wydruku.Można to ustalić poprzez zbadanie m_bPreview zmienną w CPrintInfo struktury.Ten element jest ustawiona na TRUE podczas podglądu wydruku jest wywoływany.
CPrintInfo Struktury również zawiera element o nazwie m_strPageDesc, który jest używany do formatowania ciągi wyświetlane u dołu ekranu w jedną stronę i wielu stron.Domyślnie te ciągi są w formularzu "Strona n" i "strony n - m, "można jednak zmodyfikować m_strPageDesc z poziomu OnPreparePrinting i ustawić ciągi na coś bardziej rozbudowana.Zobacz Struktura CPrintInfo w Odniesienia MFC Aby uzyskać więcej informacji.