Architektura náhledu tisku
Tento článek vysvětluje, jak rozhraní MFC implementuje funkce Náhled tisku.Témata pokrývají:
Postup zobrazení náhledu tisku
Úprava náhledu tisku
Náhled tisku je poněkud liší od zobrazení na obrazovce a v tisku, protože místo přímo kreslení obrazu na zařízení, aplikace musí simulovat tiskárny na obrazovce.Přizpůsobí to definuje knihovny Microsoft Foundation Class (nedokumentovaný) speciální třídy odvozené z Třída Nemocnosti, jen CPreviewDC.Všechny CDC objekty obsahují dva kontexty zařízení, ale obvykle jsou identické.V CPreviewDC objektu, jsou různé: tiskárny jsou simulované představuje první a druhý představuje obrazovky, na kterém výstup se zobrazí.
Postup zobrazení náhledu tisku
Když uživatel vybere příkaz Náhled souboru nabídky, systém vytvoří CPreviewDC objektu.Pokud aplikace provádí operaci, která nastaví vlastnost kontextu zařízení tiskárny, rámci také provádí podobné operace v kontextu zařízení obrazovky.Například pokud aplikace vybere písmo pro tisk, rozhraní framework vybere písmo pro zobrazení na obrazovce, který simuluje písmo tiskárny.Pokud aplikace odešle výstup do tiskárny, rámci místo odešle výstup na obrazovku.
Náhled tisku se také odlišuje od tisku v pořadí, že každý kreslí stránek dokumentu.Při tisku, pokračuje rámci tisku smyčky, dokud poskytla rozsah stránek.Při náhledu tisku jedné nebo dvou stránek jsou zobrazeny v každém okamžiku a pak čeká aplikace; žádné další stránky jsou zobrazeny, dokud uživatel neodpoví.Při náhledu tisku aplikace musí také odpovídat na WM_PAINT zprávy, stejně jako během běžného obrazovky.
CView::OnPreparePrinting Funkce je volána, když je vyvolán režim náhledu, stejně jako na začátku tiskové úlohy.Struktura CPrintInfo Struktury předán funkci obsahuje několik členů, jejichž hodnoty můžete nastavit upravit některé vlastnosti operace náhledu.Můžete například nastavit m_nNumPreviewPages členské určete, zda chcete zobrazit náhled dokumentu v režimu jednostránkové nebo dvoustránkové zobrazení.
Úprava náhledu tisku
Chování a vzhled v náhledu tisku v mnoha způsoby lze poměrně snadno změnit.Například je možné, mimo jiné:
Okno náhledu zobrazí posuvník pro snadný přístup k libovolné stránce dokumentu způsobit.
Příčina náhledu udržovat pozici uživatele v dokumentu tak, že začíná na stránce aktuálního zobrazení.
Způsobit různé inicializace provést pro náhled tisku a tisk.
Způsobit náhled, chcete-li zobrazit čísla stránek ve vlastních formátech.
Pokud víte, jak dlouho je dokument a volat SetMaxPage s odpovídající hodnotou rámci tyto informace lze použít v režimu náhledu a při tisku.Jakmile rámci zná délku dokumentu, může poskytnout okno náhledu se posuvník, umožňující uživatelům stránkovat v režimu náhledu dokumentu a naopak.Pokud jste nenastavili délku dokumentu, Nelze rámci pozice posuvníku označující aktuální pozici, tak rámci nepřidá posuvník.Uživatel musí v tomto případě použít tlačítka Předchozí stránka a další stránka v okně náhledu ovládací panel na stránku v dokumentu.
Pro náhled tisku, může být vhodné přiřadit hodnotu, která m_nCurPage člen CPrintInfo, i když by nikdy tak učiníte pro běžný tisk.Při běžném tisku, nese tento člen informace v rámci zobrazení třídy.Je to jak rámci říká zobrazení, stránky, která má být vytištěna.
Naopak při náhledu režim spuštění, m_nCurPage člen přenáší informace v opačném směru: z pohledu architektury.Systém použije hodnotu této vlastnosti k určení stránky, která by měla nejprve zobrazen náhled.Výchozí hodnota této vlastnosti je 1, tak se zpočátku zobrazí první stránku dokumentu.Můžete přepsat OnPreparePrinting na tento člen nastavit na číslo stránky zobrazené v době byl spuštěn příkaz Náhled.Tímto způsobem aplikace udržuje aktuální pozici uživatele při přechodu z režimu normálního zobrazení na režim náhledu.
Někdy můžete chtít OnPreparePrinting k provedení inicializace různé v závislosti na tom, zda je volána pro tiskové úlohy nebo pro náhled tisku.To lze určit porovnáním m_bPreview členské proměnné v CPrintInfo struktury.Tento člen je nastavena na TRUE kdy vyvolat náhledu před tiskem.
CPrintInfo Struktura také obsahuje člen s názvem m_strPageDesc, která je použita k formátování řetězce zobrazeny v dolní části obrazovky v jednostránkové nebo vícestránkové režimu.Ve výchozím nastavení jsou tyto řetězce ve formuláři "stránky n" a "stránky n - m, "ale můžete změnit m_strPageDesc ve OnPreparePrinting a hodnotu řetězce něco komplexnější.Viz Struktura CPrintInfo v Odkaz knihovny MFC pro další informace.