Инструмент 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_DIAGCROSS – диагональная сетка; в обеих функциях rgbColor – цвет штриховых линий.
Промежутки между штриховыми линиями закрашиваются в соответствии с режимом и цветом фона, если режим фона – OPAQUE, то цвет фона используется для закрашивания промежутков между штриховыми линиями, если режим фона – TRANSPARENT, то промежутки между штриховыми линиями не зарисовываются.
Можно создавать кисти, основанные на битовых шаблонах, используя функцию CreatePatternBrush:
hBrush = CreatePatternBrush (hBitmap);
Функция, включающая три рассмотренные ранее функции, строящие кисти:
hBrush = CreateBrushIndirect (&logbrush);
переменная logbrush – структура типа LOGBRUSH («логическая кисть» – logical brush), содержащая поля:
UINT lbStyle – стиль кисти: BS_SOLID – сплошная; BS_HOLLOW, BS_NULL – «пустая» (невидимая); BS_HATCHED – штрихованная; BS_PATTERN, BS_PATTERN8X8 – задаются битовой картой; BS_DIBPATTERN, BS_DIBPATTERN8X8, BS_DIBPATTERNPT – задаются битовой картой DIB (в Windows 95 размер шаблона ограничен 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);
Дата добавления: 2014-12-30; просмотров: 690;