Функция CreateBrushIndirect

Declare Function CreateBrushIndirect Lib "gdi32" (lpLogBrush As LOGBRUSH) As Long

CreateBrushIndirect создает логическую кисть с заданным стилем, цветом, узором. После окончания использования этим кистью воспользуйтесь функцией DeleteObject для удаления кисти и освобождения ресурсов компьютера.

Возвращаемое значение

Функция возвращает описатель созданной кисти в успешном случае или 0 в случае ошибки(используйте GetLastError для получения кода ошибки).

Параметры

lpLogBrush
Структура LOGBRUSH, содержащая информацию о кисти

Пример

' Создаем цветное меню с помощь кисти
Dim lRet As Long       ' возвращаемое значение
Dim hMenu As Long     ' описатель меню
Dim hBrush As Long     ' описатель создаваемой кисти
Dim lbBrushInfo As LOGBRUSH    ' информация о кисти
Dim miMenuInfo As MENUINFO  ' информация о меню

lbBrushInfo.lbStyle = BS_SOLID  'стиль кисти
lbBrushInfo.lbColor = vbRed    ' цвет кисти
lbBrushInfo.lbHatch = 0         ' игнорируем
' Создаем кисть
hBrush = CreateBrushIndirect(lbBrushInfo)
' Получим описатель меню
hMenu = GetMenu(Me.hwnd)                    
miMenuInfo.cbSize = Len(miMenuInfo)
lRet = GetMenuInfo(hMenu, miMenuInfo)
' Устанавливаем маску для изменения цвета меню и его подменю
miMenuInfo.fMask = MIM_APPLYTOSUBMENUS Or MIM_BACKGROUND
' Связываем нашу кисть с меню
miMenuInfo.hbrBack = hBrush
' Заносим новую информацию в меню
lRet = SetMenuInfo(hMenu, miMenuInfo)
DeleteObject hBrush

Смотри также

GetBrushOrgEx

Категория

Кисти

Реклама