Алгоритмизации
Скачать 1.15 Mb.
|
Инструмент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- Приложение6 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– задаются битовой картой DIB (в Windows 95 размер шаблона ограничен 8×8 точек); COLORREF lbColor– цвет кисти, для пустой или «шаблонной» кисти игнорируется, для кистей с DIB-шаблоном младшее слово определяет, следует ли интерпретировать его цвета как заданные цветовыми компонентами (DIB_RGB_COLORS) или как палитровые (DIB_PAL_COLORS). Значение поля lbStyleопределяет, как интерпретируются другие поля: lbStylelbColorlbHatch BS_SOLID Цвет кисти Игнорируется BS_HOLLOWИгнорируется Игнорируется BS_HATCHEDЦвет штриховых линий Стиль штриховки BS_PATTERNИгнорируетсяОписательбитовогошаблона Получить описатель логической кисти: SelectObject(hdc, hBrush); Удалить созданную кисть: DeleteObject(hBrush); Получить информацию о кисти: GetObject(hBrush, sizeof (LOGBRUSH), &logbrush); |