Шаг 1072 - CView::OnPrint

virtual void OnPrint( CDC* pDC, CPrintInfo* pInfo );

Параметры
pDC
Указатель на контекст устройства принтера.
pInfo
Указатель на структуру CPrintInfo, которая описывает текущее задание по выводу на печать.

Замечания
Вызывается рамкой, чтобы печатать или предварительно показать страницу документа. Для каждой напечатанной страницы, рамка вызывает эту функцию немедленно после вызова OnPrepareDC функции. Напечатанная страница определена m_nCurPage членом структуры CPrintInfo pInfo. Заданная по умолчанию реализация вызывает OnDraw функцию и передает ей контекст устройства принтера.

Перегрузите эту функцию по любой из следующих причин:

  1. Что бы позволить печатать многостраничные документы. Выполните только часть документа, который соответствует странице, в настоящее время напечатанной. Если вы используете OnDraw, чтобы выполнить исполнение, Вы можете корректировать происхождение области просмотра так, чтобы только соответствующая часть документа была напечатана.
  2. Делать напечатанный просмотр изображения отличным от отображаемого изображения (то есть если ваша прикладная программа - не WYSIWYG). Вместо того, чтобы передавать контекст устройства принтера к OnDraw, используйте контекст устройства, чтобы выполнить изображение, использующее атрибуты, не показанные на экране. Если Вы нуждаетесь в GDI ресурсах для печати этого, Вы не используете для экранного устройства отображения, выбираете их в контекст устройства перед рисунком и снимаете выделение их впоследствии. Эти GDI ресурсы должны быть распределены в OnBeginPrinting и освобождены в OnEndPrinting.
  3. Выполнять верхние колонтитулы или нижние колонтитулы. Вы можете все еще использовать OnDraw, чтобы делать исполнение, ограничивая область, на которой это может печатать.

Обратите внимание, что m_rectDraw член pInfo параметра описывает печатаемую область страницы в логических единицах.
Не вызовите OnPrepareDC в вашей перегруженной OnPrint, рамка вызывает OnPrepareDC автоматически перед вызовом OnPrint.

Пример
Следующее - скелет для перегруженной функции OnPrint:

void CMyView::OnPrint( CDC *pDC, CPrintInfo *pInfo )
{
	// Печатать верхние колонтитулы и  нижние колонтитулы, если желательно.
	// Найти часть документа, соответствующего pInfo - > m_nCurPage.
	OnDraw( pDC );
}

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 23.02.2002