Верхние и нижние колонтитулы
В этой статье объясняется, как добавить верхние и нижние колонтитулы в печатный документ.
При просмотре документа на экране имя документа и текущее расположение документа обычно отображаются в строке заголовка и строке состояния. При просмотре печатной копии документа полезно иметь имя и номер страницы, отображаемый в верхнем или нижнем колонтитуле. Это распространенный способ, в котором даже программы WYSIWYG отличаются в том, как они выполняют печать и экран.
Функция-член OnPrint является подходящим местом для печати верхних или нижних колонтитулов, так как она вызывается для каждой страницы, и потому что она вызывается только для печати, а не для отображения экрана. Можно определить отдельную функцию для печати верхнего или нижнего колонтитула и передать его контекст устройства принтера.OnPrint
Возможно, необходимо настроить источник окна или экстент перед вызовом OnDraw , чтобы избежать перекрытия текста страницы верхнего или нижнего колонтитула. Возможно, вам также придется изменить OnDraw
, так как объем документа, который помещается на страницу, может быть сокращен.
Одним из способов компенсации области, принятой верхним или нижним колонтитулов, является использование m_rectDraw члена CPrintInfo. Каждый раз при печати страницы этот элемент инициализируется с доступной областью страницы. Если вы печатаете верхний или нижний колонтитул перед печатью текста страницы, вы можете уменьшить размер прямоугольника, хранящегося в m_rectDraw , чтобы учесть область, взятую верхним или нижним колонтитуловом. Затем OnPrint
можно обратиться к m_rectDraw , чтобы узнать, сколько остается области для печати текста страницы.
Невозможно распечатать заголовок или что-либо другое из OnPrepareDC, так как он вызывается до StartPage
вызова функции-члена CDC . На этом этапе контекст устройства принтера считается на границе страницы. Вы можете выполнять печать только из OnPrint
функции-члена.