
- •Глава 4 Главное о графике
- •Концепция gdi
- •Структура gdi
- •Типы функций
- •Примитивы gdi
- •Другие аспекты
- •Контекст устройства
- •Получение описателя контекста устройства
- •Получение информации из контекста устройства
- •Программа devcaps1
- •Размер устройства
- •О цветах
- •Атрибуты контекста устройства
- •Сохранение контекста устройства
- •Рисование отрезков
- •Ограничивающий прямоугольник
- •Сплайны Безье
Атрибуты контекста устройства
Как уже говорилось выше, Windows использует контекст устройства для хранения атрибутов, определяющих поведение функций GDI при выводе. Например, когда вы выводите текст, используя функцию TextOut, вам не надо задавать цвет текста или шрифт. Windows использует контекст устройства для получения этой информации.
Когда программа запрашивает описатель контекста устройства, Windows создает контекст устройства со значениями всех атрибутов по умолчанию. Атрибуты контекста устройства приведены в следующей таблице. Программа может изменить или получить любой из этих атрибутов.
Атрибут контекста устройства |
Значение по умолчанию |
Функции для изменения |
Функции для получения |
Режим отображения (Mapping mode) |
MM_TEXT |
SetMapMode |
GetMapMode |
Начало координат окна (Window origin) |
(0,0) |
SetWindowOrgEx OffsetWindowOrgEx |
GetWindowOrgEx |
Начало координат области вывода (Viewport origin) |
(0,0) |
SetViewportOrgEx OffsetViewportOrgEx |
GetViewportOrgEx |
Протяженность окна (Window extent) |
(1,1) |
SetWindowExtEx SetMapMode ScaleWindowExtEx |
GetWindowExtEx |
Протяженность области вывода (Viewport extent) |
(1,1) |
SetViewportExtEx SetMapMode ScaleViewportExtEx |
GetViewportExtEx |
Перо (Pen) |
BLACK_PEN |
SelectObject |
SelectObject |
Кисть (Brush) |
WHITE_BRUSH |
SelectObject |
SelectObject |
Шрифт (Font) |
SYSTEM_FONT |
SelectObject |
SelectObject |
Битовый образ (Bitmap) |
Нет |
SelectObject |
SelectObject |
(продолжение)
Атрибут контекста устройства |
Значение по умолчанию |
Функции для изменения |
Функции для получения |
Текущая позиция пера (Current pen position) |
(0,0) |
MoveToEx LineTo PolylineTo PolyBezierTo |
GetCurrent-PositionEx |
Режим фона (Background mode) |
OPAQUE |
SetBkMode |
GetBkMode |
Цвет фона (Background color) |
Белый |
SetBkColor |
GetBkColor |
Цвет текста (Text color) |
Черный |
SetTextColor |
GetTextColor |
Режим рисования (Drawing mode) |
R2_COPYPEN |
SetROP2 |
GetROP2 |
Режим растяжения (Stretching mode) |
BLACKONWHITE |
SetStretchBltMode |
GetStretchBlt-Mode |
Режим закрашивания многоугольников (Polygon filling mode) |
ALTERNATE |
SetPolyFillMode |
GetPolyFillMode |
Межсимвольный интервал (Intercharacter spacing) |
0 |
SetTextCharacter-Extra |
GetTextCharac-terExtra |
Начало координат кисти (Brush origin) |
(0,0) в экранных координатах |
SetBrushOrgEx |
GetBrushOrgEx |
Область отсечения (Clipping region) |
Нет |
SelectObject SelectClipRgn IntersectClipRgn OffsetClipRgn ExcludeClipRgn SelectClipPath |
GetClipBox |