typedef struct tag LOGBRUSH
{
UINT lbStyle ; // стиль кисти
COLORREF lbColor ; // цвет кисти
LONG lbHatch ; // тип штриховки или указатель на точечный рисунок
} LOGBRUSH ;
Члены структуры:
lbStyle определяет стиль кисти и должен принимать одно из следующих значений:
BS_HOLLOW пустая кисть
BS_NULL пустая кисть
BS_HATCHED штрихуемая кисть
BS_SOLID сплошная кисть
BS_PATTERN в качестве кисти используется точечный рисунок
lbColor определяет
цвет кисти, если поле lbStyle
равно BS_HATCHED или BS_SOLID;
игнорируется, если поле lbStyle
равно BS_HOLLOW или BS_PATTERN.
lbHatch определяет тип штриховки, если поле lbStyle равно BS_HATCHED. В этом случае поле может принимать те же значения, что и параметр nIndex в конструкторе класса CBrush.
Структура LOGBRUSH используется функциями CreateBrushIndirect и ExtCreatePen.
Если кисть создана с помощью первого конструктора и является пустым объектом, то перед использованием его необходимо проинициализировать с помощью одной из следующих функций:
BOOL CreateSolidBrush ( COLORREF crColor ) ;
Функция создает однотонную кисть с заданным цветом.
BOOL CreateHatchBrush ( int nIndex , COLORREF crColor ) ;
Функция создает кисть со штриховкой заданного цвета и направления.
BOOL CreatePatternBrush ( CBitmap* pBitmap ) ;
Функция создает кисть на основе битового массива размером 8x8.
BOOL CreateBrushIndirect ( const LOGBRUSH* lpLogBrush ) ;
Функция создаёт кисть, используя двухцветный (1 бит на пиксель) точечный рисунок. Пиксели, представленные нулём рисуются текущим цветом текста. Пиксели, представленные единицей рисуются текущим цветом фона. Кроме того, может создавать однотонную кисть и кисть со штриховкой.
BOOL CreateDIBPatternBrush ( HGLOBAL hPackedDIB , UINT nUsage ) ;
BOOL CreateDIBPatternBrush ( const void* lpPackedDIB , UINT nUsage ) ;
Функция создает кисть на основе битового массива, который хранит изображение в независимом от устройства виде (Device-Independent Bitmap – DIB).
BOOL CreateSysColorBrush ( int nIndex ) ;
Функция создает кисть со штриховкой на основе системного цвета.
В приведённом ниже примере мы создаём образец физической кисти, по образцу создаём кисть и рисуем прямоугольник в текущем диалоговом окне с помощью созданной нами кисти.
CClientDC dc ( this ) ; // контекст устройства – текущее диалоговое окно
LOGBRUSH logBr ; // объявляем образец физической кисти
logBrush.lbStyle = BS_HATCHED ; // устанавливаем стиль штрихованной кисти
logBrush.lbColor = RGB ( 0 , 192 , 192 ) ; // устанавливаем цвет штрихов
logBrush.lbHatch = HS_DIAGCROSS ; // штриховка крест-накрест по диагонали
CBrush brush ; // объявляем пустую кисть
brush.CreateBrushIndirect ( &logBr ) ; // создаём кисть по образцу
dc.SelectObject ( brush ) ; // выбираем кисть для использования
dc.Rectangle ( 20 , 20 , 100 , 100 ) ; // рисуем прямоугольник
Для работы с объектом класса необходимо объявить сам объект, а затем инициализировать его с помощью одной из следующих функций: CreateBitmap, CreateBitmapIndirect, CreateCompatibleBitmap, CreateDiscardableBitmap.
Синтаксис функции CreateBitmap имеет вид:
BOOL CreateBitmap ( int nWidth, int nHeight, UINT nPlanes, UINT nBitCount, const void* lpBits ) ;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.