Страница: 1 |
Народ, помогите!!! Надо изменить цвет меню. Желательно Код на API. Посоветуйте, как можно запихать кратинки в меню. Статья на VBNet не подходит - мне нужно как в самом Basic'e.
Private Declare Function CreateBrushIndirect Lib "gdi32" (lpLogBrush As LOGBRUSH) As Long Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function GetMenuInfo Lib "user32" (ByVal hMenu As Long, lpcmi As tagMENUINFO) As Long Private Declare Function SetMenuInfo Lib "user32" (ByVal hMenu As Long, lpcmi As tagMENUINFO) As Long Private Type LOGBRUSH lbStyle As Long lbColor As Long lbHatch As Long End Type Private Type tagMENUINFO cbSize As Long fMask As Long dwStyle As Long cyMax As Long hbrBack As Long dwContextHelpID As Long dwMenuData As Long End Type Private Const BS_SOLID = 0 Private Const MIM_APPLYTOSUBMENUS = &H80000000 Private Const MIM_BACKGROUND = &H2 Private Sub Form_Load() Dim ret As Long, hMenu As Long, hBrush As Long Dim lbBrushInfo As LOGBRUSH, miMenuInfo As tagMENUINFO lbBrushInfo.lbStyle = BS_SOLID lbBrushInfo.lbColor = vbGreen lbBrushInfo.lbHatch = 0 hBrush = CreateBrushIndirect(lbBrushInfo) hMenu = GetMenu(Me.hwnd) miMenuInfo.cbSize = Len(miMenuInfo) ret = GetMenuInfo(hMenu, miMenuInfo) miMenuInfo.fMask = MIM_APPLYTOSUBMENUS Or MIM_BACKGROUND miMenuInfo.hbrBack = hBrush ret = SetMenuInfo(hMenu, miMenuInfo) End Sub Картинки в меню запихиваются либо через SetMenuItemBitmaps, либо через субклассинг, ручной отрисовкой меню. Private Declare Function CreateBrushIndirect Lib "gdi32" (lpLogBrush As LOGBRUSH) As Long Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function GetMenuInfo Lib "user32" (ByVal hMenu As Long, lpcmi As tagMENUINFO) As Long Private Declare Function SetMenuInfo Lib "user32" (ByVal hMenu As Long, lpcmi As tagMENUINFO) As Long Private Type LOGBRUSH lbStyle As Long lbColor As Long lbHatch As Long End Type Private Type tagMENUINFO cbSize As Long fMask As Long dwStyle As Long cyMax As Long hbrBack As Long dwContextHelpID As Long dwMenuData As Long End Type Private Const BS_SOLID = 0 Private Const MIM_APPLYTOSUBMENUS = &H80000000 Private Const MIM_BACKGROUND = &H2 Private Sub Form_Load() Dim ret As Long, hMenu As Long, hBrush As Long Dim lbBrushInfo As LOGBRUSH, miMenuInfo As tagMENUINFO lbBrushInfo.lbStyle = BS_SOLID lbBrushInfo.lbColor = vbGreen lbBrushInfo.lbHatch = 0 hBrush = CreateBrushIndirect(lbBrushInfo) hMenu = GetMenu(Me.hwnd) miMenuInfo.cbSize = Len(miMenuInfo) ret = GetMenuInfo(hMenu, miMenuInfo) miMenuInfo.fMask = MIM_APPLYTOSUBMENUS Or MIM_BACKGROUND miMenuInfo.hbrBack = hBrush ret = SetMenuInfo(hMenu, miMenuInfo) End Sub Картинки в меню запихиваются либо через SetMenuItemBitmaps, либо через субклассинг, ручной отрисовкой меню. >Картинки в меню запихиваются либо через SetMenuItemBitmaps, либо через субклассинг, ручной отрисовкой меню. Это как? Можно примером на мыло? Sharp, и мне, если не трудно, примерчик на мыло скинь! 2Александр: пример выслал 2Ворон: а как мне его узнать? Страница: 1 |
Вопрос: Изменить цвет меню
Добавлено: 16.12.03 08:58
Автор вопроса: Александр | ICQ: 204034
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #1
Добавлено: 16.12.03 11:09
Номер ответа: 2
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #2
Добавлено: 16.12.03 11:11
Номер ответа: 3
Автор ответа:
Александр
Разработчик Offline Client
ICQ: 204034
Вопросов: 106
Ответов: 1919
Профиль | | #3
Добавлено: 16.12.03 12:24
Номер ответа: 4
Автор ответа:
Ворон
ICQ: 178095693
Вопросов: 6
Ответов: 24
Профиль | | #4
Добавлено: 16.12.03 20:14
Номер ответа: 5
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #5
Добавлено: 17.12.03 22:11