Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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, gdyż może się zmniejszyć część dokumentu, która mieści się na stronie.
Jednym ze sposobów zrekompensowania obszaru zajętego przez nagłówek lub stopkę jest użycie elementu m_rectDraw z CPrintInfo. Za każdym razem, gdy strona jest drukowana, ten element jest inicjowany na podstawie 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że 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 .