Nagłówki i stopki
W tym artykule wyjaśniono, jak dodawać nagłówki i stopki do drukowanego dokumentu.
Gdy spojrzysz na dokument na ekranie, nazwa dokumentu i bieżąca lokalizacja w dokumencie są często wyświetlane na pasku tytułu i pasku stanu. Podczas przeglądania drukowanej kopii dokumentu warto mieć nazwę i numer strony wyświetlany w nagłówku lub stopce. Jest to typowy sposób, w jaki nawet programy WYSIWYG różnią się w sposobie wykonywania drukowania i wyświetlania ekranu.
Funkcja składowa OnPrint jest odpowiednim miejscem do drukowania nagłówków lub stopek, ponieważ jest wywoływana dla każdej strony, a ponieważ jest wywoływana tylko do drukowania, a nie do wyświetlania ekranu. Można zdefiniować oddzielną funkcję, aby wydrukować nagłówek lub stopkę, i przekazać jej kontekst urządzenia drukarki z OnPrint
. Może być konieczne dostosowanie źródła lub zakresu okna przed wywołaniem metody OnDraw , aby uniknąć nakładania się treści strony na nagłówek lub stopkę. Może być również konieczne zmodyfikowanie OnDraw
, ponieważ można zmniejszyć ilość dokumentu pasującą do strony.
Jednym ze sposobów zrekompensowania obszaru pobranego przez nagłówek lub stopkę jest użycie elementu członkowskiego m_rectDraw CPrintInfo. Za każdym razem, gdy strona jest drukowana, ten element członkowski jest inicjowany przy użyciu obszaru użytecznego strony. Jeśli drukujesz nagłówek lub stopkę przed wydrukowaniem treści strony, możesz zmniejszyć rozmiar prostokąta przechowywanego w m_rectDraw , aby uwzględnić obszar pobrany przez nagłówek lub stopkę. Następnie OnPrint
można odwołać się do m_rectDraw , aby dowiedzieć się, ile obszaru pozostaje do wydrukowania treści strony.
Nie można wydrukować nagłówka ani żadnych innych elementów z usługi OnPrepareDC, ponieważ jest wywoływana przed StartPage
wywołaniem funkcji składowej usługi CDC . W tym momencie kontekst urządzenia drukarki jest uważany za granicę strony. Drukowanie można wykonywać tylko z funkcji składowej OnPrint
.