Cтраница 1
Предварительный просмотр печати) - просмотр подготовленного к печати документа. [1]
Чтобы реализовать поддержку печати или предварительного просмотра печати, необходимо переопределить только виртуальную функцию OnPreparePrinting. MFC вызывает ее либо перед печатью, либо перед предварительным просмотром. [2]
Когда функции OnFilePrinc и OnFilePrintPreview управляют печатью или предварительным просмотром печати, они вызывают ряд функций класса cview. Необходимо переопределить виртуальную функцию OnPreparePrinting, которая вызывает функцию CView: : OnPreparePrinting, чтобы создать объект контекста устройства для печати или предварительного просмотра. [3]
Диалоговое окно Print Setup.| Диалоговое окно Print. [4] |
Наконец, если выбрана команда меню Print Preview, программа отображает окно предварительного просмотра печати, содержащее образ целой печатаемой страницы в масштабе, соответствующем окну программы. [5]
Флажок Printing and print preview ( Печать и просмотр печати) - AppWizard генерирует код для печати, настроек печати и предварительного просмотра печати. Флажок установлен по умолчанию. [6]
Поскольку объект контекста устройства связан с принтером, результат, сгенерированный функцией OnDraw, автоматически передается принтеру ( или в окно предварительного просмотра печати), а не в окно представления. [7]
Средства программы 1С: Предприятие по работе с Таблицами позволяют создавать эффектные отчеты, причем на экране монитора отображается не просто мертвая картинка предварительного просмотра печати, а живой отчет, который можно редактировать или непосредственно из него вызывать дополнительную поясняющую информацию. [8]
Обе функции, CView:: OnFilePrint и CView:: OnFilePrintPreview, управляют операциями печати. Однако OnFilePrint передает результат на принтер, а функция OnFilePrintPreview - в окно предварительного просмотра печати, отображаемое поверх обычного окна программы. При этом она показывает результат в виде одной или двух печатаемых страниц. В процессе управления печатью эти функции вызывают виртуальные функции, определенные внутри класса CView. Реализация виртуальных функций в классе cview по умолчанию накладывает ограничение на процесс печати. Как будет показано далее в этой главе, для улучшения возможностей программы печати одну ( или более) из этих функций можно переопределить. [9]
После того как MFC вызовет функцию OnPreparePrinting, чтобы подготовить объект контекста устройства для печати или просмотра, она передает этот объект в функцию OnDraw класса представления. Поскольку объект контекста устройства связывается с принтером, а не с окном представления, выводимая графическая информация появляется на печатаемой странице ( или в окне предварительного просмотра печати), а не внутри окна представления. Единственная программа рисования внутри функции OnDraw имеет возможность отобразить выводимую информацию как в окне представления, так и при печати, поскольку вызываемые для этого функции класса CDC в достаточной степени аппаратно независимы. [10]
В принципе контекст устройства вывода ( m HDC) используется только для выполнения операций рисования, а через второй контекст запрашиваются параметры. Однако этот механизм имеет смысл только для объектов класса CMetaFileDC, когда m hDC настроен на метафайл, a m hAttribDC настроен на физическое устройство вывода, параметры которого используются для рисования. Этот же механизм используется и для реализации режима предварительного просмотра печати ( print preview), который реализован в большом количестве приложений. Для этих целей могут быть использованы функции SetOut - putDC и SetAttribDC, которые позволяют приложению связывать объект класса с различными контекстами устройств для графического вывода и получения текущих параметров. [11]
Мастер AppWizard используется для генерации основы исходных файлов программ. Аналогично, мастер ClassWizard генерирует основную часть кода для определения производных классов и обработчиков сообщений, настройки библиотеки MFC, управления диалоговыми окнами, а также выполнения других задач. Заметьте: возможности мастеров не ограничиваются генерацией простых оболочек программ. Они позволяют создавать программы с большим набором сложных компонентов. К таковым относятся панели инструментов, строки состояния, контекстная справка, объекты OLE, средства доступа к базам данных и даже законченные меню с частично или полностью функционирующими командами открытия и сохранения файлов, печати, предварительного просмотра печати и выполнения других задач. После генерации основного кода программы с помощью мастеров добавьте собственный код, определяющий логику работы программы. [12]