АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Эллипсы

Читайте также:
  1. Дуги, окружности, эллипсы
  2. Контекст и эллипсы

Для рисования эллипсов предназначена функция Ellipse, прототип которой

приведен ниже:

BOOL E11ipse(HDC hdc, int xLeft, int yTop, int xRight. int yBottom);

Функция рисует эллипс в ограничивающем прямоугольнике, заданном координатами xLeft, yTop, xRight, yBottom.

Все сказанное выше о влиянии атрибутов в контексте устройства на процесс

рисования прямоугольников распространяется также и на рисование эллипсов

функцией Ellipse.

 

Кисть — это растр размером 8x8 пикселов, который при закрашивании области

дублируется в горизонтальном и вертикальном направлении. Когда Windows

использует смешивание (dithering) для отображения большего числа цветов, чем

доступно на дисплее, то на самом деле для этого используется кисть. На монохромном дисплее, например, смешивание черных и белых пикселов позволяет получить 64 разных оттенка серого цвета. На цветных видеосистемах полутона тоже реализуются при помощи подобных растровых образов, но с гораздо более широким набором доступных цветов.

Win32 GDI предоставляет несколько функций для создания объектов логических кистей. Логическая кисть описывает требования, предъявляемые к заливке со стороны приложения. Эти требования не всегда совпадают с возможностями физических устройств. Драйверы устройств поддерживают собственные структуры данных, определяющие реализацию логической кисти. Такие внутренние объекты называются физическими кистями.

Для дескрипторов логических кистей зарезервирован тип HBRUSH (handle to

a brush), поэтому новая кисть объявляется следующим образом:

HBRUSH hBrush;

Значение дескриптора получают вызовом соответствующей функции. Вид

вызываемой функции зависит от типа кисти. Так же как и при работе с перьями,

созданные кисти выбираются в контекст устройства с помощью функции SelectObject, после чего заливка всех замкнутых фигур осуществляется выбранной кистью.

Когда кисть перестает быть нужной, рекомендуется вернуть в контекст устройства прежнюю кисть, а ненужную кисть удалить при помощи функции DeleteObject.

В разделе «Простые перья» были приведены возможные сценарии

использования нескольких перьев в одном приложении. Аналогичные сценарии можно использовать и для работы приложения с несколькими кистями.



Стандартные кисти

Стандартные кисти приведены в табл..

Таблица Стандартные кисти

BLACK_BRUSH Черная кисть

DKGRAY_BRUSH Темно-серая кисть

DC_BRUSH Кисть DC — сплошная цветная кисть; по умолчанию имеет белый цвет; цвет может быть изменен функцией SetDCBrushColor

GRAY_BRUSH Серая кисть

HOLLOW_BRUSH Пустая кисть (заливки нет)

LTGRAY_BRUSH Светло-серая кисть

NULL_BRUSH To же, что и HOLLOW_BRUSH

WHITE_BRUSH Белая кисть, которая используется по умолчанию

Все кисти, приведенные в таблице, — сплошные, то есть все 8x8 пикселов

растра имеют один и тот же цвет. Кисть DC, реализованная только в Windows

2000, относится к числу новых средств GDI. Так же как и перо DC, кисть DC

позволяет изменять свой цвет после ее выбора в контекст устройства. Для этого

предназначена функция SetDCBrushColor.

Чтобы получить дескриптор стандартной кисти, достаточно вызвать функцию

GetStockObject с одной из констант, приведенных в табл, например:

hBrush = (HBRUSH) GetStockObject(GRAY_BRUSH);

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 |


При использовании материала, поставите ссылку на Студалл.Орг (0.01 сек.)