Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метода по ОАиП.doc
Скачиваний:
12
Добавлен:
11.05.2015
Размер:
3.21 Mб
Скачать

Инструмент Brush

Объект кисть – это битовый образ, свойства которого распространяются в горизонтальном и вертикальном направлениях при закрашивании области.

Имеется шесть стандартных(Stock) кистей:WHITE_BRUSH– белая,LTGRAY_ BRUSH– светло-серая,GRAY_ BRUSH– серая,DKGRAY_ BRUSH– темно-серая,BLACK_ BRUSH– черная иNULL_ BRUSH (HOLLOW) – пустая кисть.

Выбрать одну из стандартных кистей в контекст устройства можно аналогично выбору пера, определив переменную типа описателя кисти HBRUSH hBrush; получаем описатель кисти, например,GRAY_BRUSH:

hBrush=GetStockObject(GRAY_BRUSH);

Выберем эту кисть в контекст устройства:

SelectObject(hdc,hBrush);

Теперь внутренняя область рисуемых фигур будет закрашиваться серым.

Если необходимо нарисовать фигуру без рамки, выберем перо NULL_PEN:

SelectObject (hdc, GetStockObject (NULL_PEN));

А если только контур фигуры без закрашивания внутренней области, выберем кисть NULL_BRUSH:

SelectObject (hdc, GetStockObject (NULL_BRUSH));

Для создания сплошной (Solid) логической кисти:

hBrush=CreateSolidBrush(rgbColor);

Для создания штриховой (Hatch) кисти, состоящей из горизонтальных, вертикальных или диагональных линий:

hBrush=CreateHatchBrush (iHatchStyle,rgbColor);

параметр iHatchStyle– стиль штриховки:HS_HORIZONTAL,HS_VERTICAL,HS_BDIAGONAL– диагональная слева направо вверх;HS_FDIAGONAL– диагональная слева направо вниз;HS_CROSS– прямая сетка;HS_DIAG­CROSS– диагональная сетка; в обеих функцияхrgbColor– цвет штриховых линий.

Промежутки между штриховыми линиями закрашиваются в соответствии с режимом и цветом фона, если режим фона – OPAQUE, то цвет фона используется для закрашивания промежутков между штриховыми линиями, если режим фона –TRANSPARENT, то промежутки между штриховыми линиями не зарисовываются.

Можно создавать кисти, основанные на битовых шаблонах, используя функциюCreatePatternBrush:

hBrush=CreatePatternBrush (hBitmap);

Функция, включающая три рассмотренные ранее функции, строящие кисти:

hBrush=CreateBrushIndirect (&logbrush);

переменная logbrush– структура типаLOGBRUSH(«логическая кисть» –logicalbrush), содержащая поля:

UINT lbStyle– стиль кисти:BS_SOLID– сплошная;BS_HOLLOW,BS_NULL– «пустая» (невидимая);BS_HATCHED– штрихованная;BS_PATTERN,BS_PATTERN8X8– задаются битовой картой;BS_DIB­PATTERN,BS_DIBPATTERN8X8,BS_DIBPATTERNPT– задаются битовой картойDIBWindows95 размер шаблона ограничен 88 точек);

COLORREF lbColor– цвет кисти, для пустой или «шаблонной» кисти игнорируется, для кистей сDIB-шаблоном младшее слово определяет, следует ли интерпретировать его цвета как заданные цветовыми компонентами (DIB_RGB_COLORS) или как палитровые (DIB_PAL_COLORS).

Значение поля lbStyleопределяет, как интерпретируются другие поля:

lbStyle

lbColor

lbHatch

BS_SOLID

Цвет кисти

Игнорируется

BS_HOLLOW

Игнорируется

Игнорируется

BS_HATCHED

Цвет штриховых линий

Стиль штриховки

BS_PATTERN

Игнорируется

Описатель битового шаблона

Получить описатель логической кисти: SelectObject(hdc, hBrush);

Удалить созданную кисть: DeleteObject(hBrush);

Получить информацию о кисти:

GetObject (hBrush,sizeof(LOGBRUSH), &logbrush);