http://tikitak.narod.ru ---- Главная страница сайта
Шаг 81 - Распечатка и предварительный просмотр
От: Dmitry Panferov
Дата: 10 января 2000 г. 3:51
Тема: MFCByStep - question
Хотелось бы еще поподробнее узнать о печати на принтер
т.к. известно что на экране мы все измеряем пикселами
а на печать уже все идет в физических величнах
Поэтому мне пришлось практически полностью переделывать функцию
OnDraw чтобы распечатать данные на принтер
Первое, что нужно сделать - это реализовать проект на основе MFC AppWizard, который поддерживает предварительный просмотр. Для этого на шаге 4 волшебника необходимо установить Print and Priview опцию.
С этого момента всё, что Вы будете рисовать в функции OnDraw класса вида всё будет отражаться в окне предварительного просмотра. Только Вы должны будете заметить, что размеры далеко не совпадают. Это связанно с тем, что констекст устройства по умолчанию работает с графикой в единицах MM_TEXT. Так как принтер и экран могут иметь разное кодличество единиц на страницу это порождает и проблемы масштабирования.
При работе с графикой используйте режим MM_LOENGLISH. Вообще-то их несколько. Вот перечисление режимов.
MM_HIENGLISH 0.001 дюйма
MM_HIMETRIC 0.01 мм
MM_ISOTROPIC определяет пользователь
MM_LOENGLISH 0.01 дюйма
MM_LOMETRIC 0.1 мм
MM_TEXT пиксель устройства
MM_TWIPS 1/1440 дюйма
Вы можете выбирать любой. Но MM_LOENGLISH достаточно удобный. Только следует точно знать о расположении координат и нуля. Для каждого режима они разные. Для MM_LOENGLISH вот так.
Для установки режима у контекста устройства есть функция SetMapMode, с помощью которой переключается режим. Вызывайте её первой, и всё будет в порядке. Режим MM_LOENGLISH гарантирует, что и на экране и на принтере будет выводиться графика одинаково на основе размеров заданных в дюймах.
Предыдущий Шаг | Следующий Шаг | Оглавление By Artem.
Используются технологии uCoz
|