Если вы вызываете функцию CreateDC, то обязаны указать драйвер принтера и порт. Для получения этих данных можно воспользоваться одной из функций: GetPrinter или EnumPrinters.
Контекст устройства памяти
Чтобы дать возможность приложениям осуществлять операции вывода в память вместо работы с фактическим устройством, используется специальный контекст устройства для растровых операций, который называется контекстом устройства памяти. Возможность осуществлять операции вывода в памяти может понадобиться для улучшения характеристик вывода изображений. Контекст устройства памяти дает возможность системе обработать часть памяти как виртуальное устройство. Это массив битов в памяти, которые приложение может временно использовать для сохранения данных растрового изображения, созданного на нормальной поверхности для рисования. Поскольку точечный рисунок совместим с устройством, то иногда контекст устройства памяти упоминается как совместимый.
Контекст устройства памяти сохраняет растровые изображения для специфического устройства. Приложение может создать данный контекст посредством вызова функции CreateCompatibleDC. Результатом ее выполнения является растровое изображение, имеющее цветной формат, совместимый с форматом первоначального устройства.
Первоначально изображение в контексте устройства памяти имеет размер 1x1 пиксел. Прежде чем приложение сможет начать работать с изображением, оно должно установить битовый массив с соответствующей шириной и высотой в контекст устройства, вызывая функцию SelectOb j ect.
Когда приложение передает описатель, который получен при помощи функции CreateCompatibleDC (одной из функций рисования), то запрашиваемая операция вывода не осуществляется на поверхности рисунка устройства. Вместо этого система сохраняет цветовую информацию для результирующей линии, кривой, текста или региона в битовом массиве. Приложение может копировать изображение, хранящееся в памяти, обратно на поверхность рисунка посредством вызова функции BitBlt, указывая в качестве источника контекст устройства памяти, а в качестве приемника – контекст устройства окна или экрана.
Информационный контекст устройства
Win32 API поддерживает информационный контекст устройства, используемый, чтобы восстановить или получить заданные по умолчанию параметры устройства. Для создания информационного контекста приложение должно вызвать функцию CreatelC. Для получения информации об объектах, заданных по умолчанию для интересующего устройства, используются функции GetCurrentOb j ect и GetObject. Использование информационного контекста устройства более эффективно, чем контекстов других типов, потому как Win32 API работает с информационным контекстом на более низком уровне и не создает структур, необходимых для их работы. После завершения работы приложения с информационным контекстом устройства необходимо вызвать функцию DeleteDC для удаления созданного контекста.
Операционная система Windows поддерживает пять различных графических режимов, которые позволяют приложениям определять тип смешивания цветов, место и параметры вывода и т. д.:
• настройки фона – определяет, как происходит смешивание цветов фона текстовых объектов и растровых изображений с цветом фона поля вывода;
• отображения – определяет, как происходит смешивание цвета карандашей, кистей, текстовых объектов и растровых изображений с цветом фона;
• масштабирования – определяет преобразование логических координат при графическом выводе в окна, на экран или принтер;
• заполнение контуров – определяет, каким образом будут применяться шаблоны кисти при заполнении контуров;
• сжатия – определяет, каким образом происходит преобразование цветов растровых изображений при их увеличении (уменьшении).
Приложение может использовать четыре различных вида технологий шрифта для отображения и печати текста:
• растровые;
• векторные;
• TrueType;
• ОрепТуре.
Отличие между данными видами шрифтов заключается в способе хранения параметров начертания символов в специальных шрифтовых файлах. В случае растровых шрифтов каждый символ хранится в виде растра (битового массива). Векторные шрифты хранят для каждого символа относительные координаты концов отрезков, из которых состоит соответствующий символ. Шрифты TrueType и ОрепТуре содержат информацию о линиях и командах изгиба, а также настроечную информацию для точного отображения символа, которая используется при уменьшении и увеличении масштаба отображения. Шрифты ОрепТуре эквивалентны шрифтам TrueType, за исключением того, что они позволяют определять дополнительную информацию о символах.