Поделиться через


Печать по умолчанию

В этой статье объясняется процесс печати по умолчанию в Windows с точки зрения платформы MFC.

В приложениях MFC класс представления имеет функцию-член с именем OnDraw , которая содержит весь код рисования. OnDraw принимает указатель на объект CDC в качестве параметра. Этот CDC объект представляет контекст устройства для получения изображения, созданного с помощью OnDraw. Когда окно, отображающее документ, получает сообщение WM_PAINT , платформа вызывает OnDraw и передает его контекст устройства для экрана ( объект CPaintDC , который должен быть конкретным). Соответственно, OnDrawвыходные данные переходит на экран.

При программировании для Windows отправка выходных данных на принтер очень похожа на отправку выходных данных на экран. Это связано с тем, что интерфейс графического устройства Windows (GDI) является аппаратным. Вы можете использовать те же функции GDI для отображения экрана или для печати с помощью соответствующего контекста устройства. CDC Если объект, OnDraw полученный представляет принтер, OnDrawвыходные данные будут поступать на принтер.

Это объясняет, как приложения MFC могут выполнять простую печать, не требуя дополнительных усилий в вашей части. Платформа заботится о отображении диалогового окна печати и создании контекста устройства для принтера. Когда пользователь выбирает команду "Печать" в меню "Файл", представление передает этот контекст OnDrawустройства, в который рисует документ на принтере.

Однако существуют некоторые существенные различия между печатью и отображением экрана. При печати необходимо разделить документ на отдельные страницы и отобразить их одновременно, а не отображать любую часть в окне. Как corollary, вы должны знать о размере бумаги (будь то размер буквы, юридический размер или конверт). Вы можете печатать в разных ориентациях, например в альбомном или книжном режиме. Библиотека классов Microsoft Foundation не может предсказать, как приложение будет обрабатывать эти проблемы, поэтому он предоставляет протокол для добавления этих возможностей.

Этот протокол описан в статье "Многостраниковые документы".

См. также

Печать