Независимость устройства - это одна из главных функций Microsoft ® Windows ®. Приложения могут рисовать и выводить на печать на разнообразных устройствах. Программное обеспечение, которое поддерживает эту независимость устройства, содержится в двух динамически подключаемых библиотеках (DLL). Первая - это Gdi.dll, упоминаемая как графический интерфейс устройства (GDI); вторая упоминается как драйвер устройства. Название второй библиотеки зависит от устройства, где приложение рисует выводимые данные. Например, если приложение выводит рисунок в рабочей области своего окна на дисплее VGA, эта библиотека является - Vga.dll; если приложение печатает выводимые данные на принтере Epson FX-80 , эта библиотека называется Epson9.dll.
Приложение должно сообщить GDI, что надо загрузить специфический драйвер устройства и, как только драйвер загрузится, подготовить устройство к операциям рисования (таким как выбор цвета и ширины линии, шаблон и цвет кисти, гарнитуру шрифта, область отсечения и так далее). Эти задачи выполняются, для создания и обслуживания контекста устройства (DC). Контекст устройства (DC) - структура, которая определяет набор графических объектов и связанных с ними атрибутов, и графических режимов, которые воздействуют на вывод данных. Графические объекты включаются в себя перо для рисования линии, кисть для окраски и заливки, точечный рисунок для копирования или прокрутки части экрана, палитра для определения набора доступных цветов, область отсечения и другие действия, и пути для закрашивания и рисования. В отличие от большинства структур, приложение никогда не имеет прямого доступа к контексту устройства (DC); вместо этого, оно оперирует структурой косвенно при помощи вызова различных функций.
Этот общий обзор дает информацию о нижеследующих темах:
Важное понятие - это компоновка контекста устройства (DC) или окна, которое описывает порядок, в котором показываются объекты GDI и текст (или слева направо, или справа налево). Для получения дополнительной информации, см. Компоновка и зеркалирование окна и функции GetLayout и SetLayout.