Несколько слов о заполнении объектов

Как читатель уже знает, заполнение замкнутых графических объектов происходит с помощью текущей кисти. Программист может использовать предопределенную кисть, а может создать свою собственную, после чего сделать ее текущей с помощью функции 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.

Используются технологии uCoz