Sdílet prostřednictvím


Architektura náhledu tisku

Tento článek vysvětluje, jak architektura MFC implementuje funkci náhledu tisku. Probíraná témata zahrnují:

Náhled tisku se trochu liší od zobrazení a tisku obrazovky, protože místo přímého kreslení obrázku na zařízení musí aplikace simulovat tiskárnu pomocí obrazovky. Knihovna tříd Microsoft Foundation definuje speciální (nezdokumentovanou) třídu odvozenou z třídy CDC, která se nazývá CPreviewDC. Všechny CDC objekty obsahují dva kontexty zařízení, ale obvykle jsou identické. V objektu CPreviewDC se liší: první představuje simulovanou tiskárnu a druhá představuje obrazovku, na které se výstup skutečně zobrazí.

Proces náhledu tisku

Když uživatel vybere příkaz Náhled tisku z nabídky Soubor , architektura vytvoří CPreviewDC objekt. Kdykoli vaše aplikace provede operaci, která nastaví charakteristiku kontextu zařízení tiskárny, architektura také provádí podobnou operaci v kontextu zařízení obrazovky. Pokud například vaše aplikace vybere písmo pro tisk, architektura vybere písmo pro zobrazení obrazovky, které simuluje písmo tiskárny. Pokaždé, když vaše aplikace odešle výstup do tiskárny, architektura místo toho odešle výstup na obrazovku.

Náhled tisku se také liší od tisku v pořadí, v jakém každý nakreslí stránky dokumentu. Během tisku architektura pokračuje ve smyčce tisku, dokud se nevykreslí určitý rozsah stránek. Během náhledu tisku se vždy zobrazí jedna nebo dvě stránky a aplikace počká; dokud uživatel neodpovědí, nezobrazí se žádné další stránky. Během zobrazení náhledu tisku musí aplikace také reagovat na WM_PAINT zprávy, stejně jako při běžném zobrazení obrazovky.

Funkce CView::OnPreparePrinting se volá při vyvolání režimu náhledu, stejně jako na začátku tiskové úlohy. Struktura CPrintInfo předaná funkci obsahuje několik členů, jejichž hodnoty můžete nastavit pro úpravu určitých charakteristik operace náhledu tisku. Můžete například nastavit m_nNumPreviewPages člena tak, aby určil, jestli chcete zobrazit náhled dokumentu v režimu jedné stránky nebo dvou stránek.

Úprava náhledu tisku

Chování a vzhled náhledu tisku můžete změnit mnoha způsoby, jak snadno. Můžete například mimo jiné:

  • Protože okno náhledu tisku zobrazí posuvník pro snadný přístup k libovolné stránce dokumentu.

  • Pokud chcete zachovat pozici uživatele v dokumentu tak, že na aktuální stránce začnete zobrazovat náhled tisku.

  • Způsobit, že se pro náhled a tisk tisku provede jiná inicializace.

  • Zobrazení náhledu stránky ve vašich vlastních formátech

Pokud víte, jak dlouho je dokument a volá SetMaxPage se s příslušnou hodnotou, může tato architektura tyto informace použít v režimu náhledu i během tisku. Jakmile architektura zná délku dokumentu, může okno náhledu poskytnout posuvníkem, který uživateli umožní procházet stránku v režimu náhledu. Pokud jste nenastavili délku dokumentu, nemůže architektura umístit posuvník, aby označí aktuální pozici, takže architektura nepřidá posuvník. V takovém případě musí uživatel použít tlačítka Další stránka a Předchozí stránka na ovládacím panelu okna náhledu k zobrazení stránky dokumentu.

V případě náhledu tisku může být užitečné přiřadit hodnotu m_nCurPage členovi CPrintInfo, i když byste to nikdy neudělali pro běžný tisk. Během běžného tisku tento člen přenáší informace z architektury do třídy zobrazení. Takto architektura říká zobrazení, která stránka se má vytisknout.

Naproti tomu při spuštění režimu náhledu tisku nese člen m_nCurPage informace v opačném směru: ze zobrazení do architektury. Architektura používá hodnotu tohoto člena k určení, která stránka se má zobrazit jako první. Výchozí hodnota tohoto člena je 1, takže na začátku se zobrazí první stránka dokumentu. Pokud chcete tohoto člena nastavit na počet zobrazených stránek v okamžiku vyvolání příkazu Náhled tisku, můžete tento člen přepsat OnPreparePrinting . Aplikace tak udržuje aktuální pozici uživatele při přechodu z normálního režimu zobrazení do režimu náhledu tisku.

Někdy můžete chtít OnPreparePrinting provést různé inicializace v závislosti na tom, jestli se volá pro tiskovou úlohu nebo pro náhled tisku. Můžete to zjistit prozkoumáním m_bPreview členské proměnné ve struktuře CPrintInfo . Tento člen je při vyvolání náhledu tisku nastaven na hodnotu TRUE .

Struktura CPrintInfo obsahuje také člen pojmenovaný m_strPageDesc, který slouží k formátování řetězců zobrazených v dolní části obrazovky v jednostránkovém a vícestránkovém režimu. Ve výchozím nastavení jsou tyto řetězce ve formátu "Stránka n" a "Stránky n - m", ale můžete upravit m_strPageDesc z uvnitř OnPreparePrinting a nastavit řetězce na něco složitějšího. Další informace najdete v tématu CPrintInfo – struktura v referenční dokumentaci MFC.

Viz také

Tisk a náhled tisku
Tisk
CView – třída
CDC – třída