Главная страница
Навигация по странице:

  • HBRUSH hBrush

  • CreateSolidBrush

  • CreateHatchBrush

  • CreateBrushIndirect

  • SelectObject

  • Алгоритмизации


    Скачать 1.15 Mb.
    НазваниеАлгоритмизации
    Дата27.09.2022
    Размер1.15 Mb.
    Формат файлаdocx
    Имя файла12_100229_1_124427 (1).docx
    ТипДокументы
    #700459
    страница63 из 67
    1   ...   59   60   61   62   63   64   65   66   67

    Инструмент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);

    1   ...   59   60   61   62   63   64   65   66   67


    написать администратору сайта