Реферат: Windows
- Режим закрашивания многоугольников (альтернативный);
- Режим растяжения (черный по белому);
- Выравнивание границ текста (по левому и верхнему краям);
- Цвет текста (черный для текста и кистей с монохромным
шаблоном закрашивания);
- Выравнивание строк текста (0,0);
- Протяженность окна данного экрана (1,1);
- Начало координат окна данного экрана (0,0);
- Протяженность окна экрана (1,1);
- Начало координат окна экрана (0,0).
Контекст устройства связывает программу с конкретной поверхностью рисования. Такое соединение является логическим, а не физическим. Чтобы избежать конфликтов, связанных с совместным использованием устройств, программа получает у контекста устройства "пропуск" к устройству. Работа системы пропусков зависит от типа устройства. На устройствах получения твердых копий это делается путем буферизации ввода, а на видеоустройствах - путем выделения так называемой области прорисовки, вне границ которой программа рисовать не может.
Основные атрибуты контекста устройства
Для рисовании линий самым важным атрибутом контекста устройства является перо, определяющее, как будет выглядеть линию: ее цвет, ширина и стиль (или шаблон, например, сплошная линия, пунктир и т.п.) и представляющее из себя запрос к устройству на рисование линии определенного вида.
При рисовании линий также используется атрибут - режим графического вывода, в котором можно задать логическую операцию, чтобы применить ее при выводе между новым и старым пикселями.
Для закрашивания областей используется атрибут кисть, определяющий как будет выглядеть закрашиваемая область и характеризующийся тремя характеристиками: стилем, цветом и шаблоном. Размер кисти составляет 8Х8 пикселей.
При изображении текста ключевым атрибутом является шрифт. Шрифт - совокупность шаблонов для вывода текста. GDI распознает два вида шрифтов: логические и физические.
Логический шрифт описывает текст стандартным не
зависящим от внешних устройств способом. Логический шрифт
задается структурой LOGFONT. Логический шрифт - это запрос на
на текст с определенными характеристиками.
typedef struct tagLOGFONT
int lfHeight; // высотасимвола
int lfWidth; // средняяширина
int lfEscapement; // уголнаклонатекста
int lfOrientation; // уголнаклонасимвола
int lfWeight; // среднеечислопикселей/1000
BYTE lfItalic; // не 0, если курсив
BYTE lfUnderline; // не 0, если подчеркнуто
BYTE lfStrikeOut; // не 0, если вычеркнуто