Как читатель уже знает, заполнение замкнутых графических объектов происходит с помощью текущей кисти. Программист может использовать предопределенную кисть, а может создать свою собственную, после чего сделать ее текущей с помощью функции SelectObject().
Простейшим видом кисти является так называемая сплошная кисть, которая создается с помощью функции CreateSolidBrush():
WINGDIAPI HBRUSH WINAPI CreateSolidBrush(COLORREF);Единственный аргумент этой функции - цвет кисти (может, лучше сказать не кисти, а краски?).
Штриховая кисть создается с помощью функции CreateHatchBrush():
WINGDIAPI HBRUSH WINAPI CreateHatchBrush(int, COLORREF);Первый аргумент этой функции - стиль штриховки. Возможные стили приведены в таблице.
Стиль штриховки | Значение | Описание | Эффект |
HS_HORIZONTAL | 0 | ---- | Горизонтальная штриховка |
HS_VERTICAL | 1 | ||||| | Вертикальная штриховка |
HS_FDIAGONAL | 2 | \\\\\ | Наклонная слева направо штриховка |
HS_BDIAGONAL | 3 | ///// | Наклонная справа налево штриховка |
HS_CROSS | 4 | +++++ | Штриховка крестиком |
HS_DIAGCROSS | 5 | xxxxx | Штриховка косым крестиком |
Второй аргумент указывает цвет штриховки.
И наконец, с помощью функции CreatePatternBrush() мы можем создать кисть, которая при заполнении будет использовать bitmap. В wingdi.h она описана следующим образом:
WINGDIAPI HBRUSH WINAPI CreatePatternBrush(HBITMAP);Уже по типу аргумента видно, что единственным аргументом этой функции является хэндл bitmap'а.
Эти три функции при успешном завершении возвращают хэндл созданной кисти. В том случае, если произошла какая-то ошибка, возвращаемое значение равно NULL.