Visual C++. Описание стандартных классов - OnPrint

ОГЛАВЛЕНИЕ


OnPrint

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

Аргументы

  • pDC - указатель на объект класса контекста устройства принтера.
  • pInfo - указатель на объект класса CPrintInfo, содержащий описание текущего задания для принтера.

Описание

Вызывается приложением для печати или предварительного просмотра страницы документа. Для каждой печатаемой страницы приложение вызывает данную функцию сразу же после вызова функции OnPrepareDC. Номер печатаемой страницы определяется значением переменной m_nCurPage, являющейся членом класса CPrintInfo, на объект которого указывает аргумент pInfo. По умолчанию данная функция вызывает функцию OnDraw и передает ей контекст устройства принтера. Данная функция перегружается для решения следующих задач:
  • для печати многостраничных документов. При печати документа с использованием функции OnDraw для определения фрагмент документа, который будет распечатываться на данной странице, необходимо установить начало отсчета рабочей области (однако данная операция обычно производится в функции OnPrepareDC);
  • для изменения формы отображения документа при печати (в том случае, если приложение не соответствует принципу "Что вы видите, то вы и имеете"). В данном случае вместо того, чтобы передавать контекст устройства функции OnDraw, пользователь может вызвать собственную функцию, выводящую документ на печать и использующую для обработки изображения параметры, отличные от тех, которые используются при выводе его на экран;
  • для использования при печати документа дополнительных ресурсов GDI, не используемых при выводе его на экран. Ресурсы GDI должны выбираться в контекст устройства перед началом процесса печати и освобождаться после его завершения. Эти ресурсы создаются в функции OnBeginPrinting и уничтожаться в функции OnEndPrinting;
  • для вывода колонтитулов. При этом можно использовать функцию OnDraw, ограничив ей область печати.
Переменная m_rectDraw, являющаяся членом класса CPrintInfo, на объект которого указывает аргумент pInfo, содержит размеры области печати страницы, выраженные в логических единицах. Не следует вызывать функцию OnPrepareDC при перегрузке функции OnPrint, поскольку приложение автоматически вызывает функцию OnPrepareDC перед вызовом функции OnPrint.