MUDAR A COR DO MENU

CIANOS 04/08/2009 17:30:56
#318886
Estou procurando uma forma de alterar a cor de fundo e do texto do menu, achei algumas opções aqui bo vbmania. Mas nada muito claro o suficiente para entender.
Se alguem conhece alguma API e tenha alguma explicação de como usar está API para tal função eu agradeço.



O mundo é uma Bola, então à CHUTE-AAAAAAAAAAAAAAAAAA!!!!!!!!!!!!!!!!
X16X 04/08/2009 17:51:16
#318887
Ao invez de fazer essas alteracoes nao te interessa usar um bom componente para menu ?

Talvez deva dar uma olhada no HookMenu , esta na zona de downloads.

OBS: CASO TENHA INTERESSE.


flw's.


CIANOS 06/08/2009 19:30:06
#319143
Na versão que está com codigo fonte disponível, não mostra como altera a cor, e a API que faz isso não ficou muito clara. Mas valeu, estarei ainda à procura;
X16X 07/08/2009 11:20:25
#319192
CIANOS,

De uma olhada nesse codigo, creio que seja o que voce quer.
Fiz algumas modificacoes e coloquei alguns comentarios , para que voce entender melhor e possa modificar.

OBS: Crie alguns menus para ver o efeito.


Option Explicit

Private Const MIM_BACKGROUND As Long = &H2
Private Const MIM_APPLYTOSUBMENUS As Long = &H80000000

Private Type MENUINFO
cbSize As Long
fMask As Long
dwStyle As Long
cyMax As Long
hbrBack As Long
dwContextHelpID As Long
dwMenuData As Long
End Type

Private Declare Function DrawMenuBar Lib [Ô]user32[Ô] (ByVal hWnd As Long) As Long
Private Declare Function GetSubMenu Lib [Ô]user32[Ô] (ByVal hMenu As Long, ByVal nPos As Long) As Long
Private Declare Function GetMenu Lib [Ô]user32[Ô] (ByVal hWnd As Long) As Long
Private Declare Function SetMenuInfo Lib [Ô]user32[Ô] (ByVal hMenu As Long, mi As MENUINFO) As Long
Private Declare Function CreateSolidBrush Lib [Ô]gdi32[Ô] (ByVal crColor As Long) As Long

Private Sub Form_Load()
Dim Menu As MENUINFO

With Menu
[ô] Pega tamanho
.cbSize = Len(Menu)

[ô] Coloca mascara
[ô] MIM_BACKGROUND = BACKGROUND
.fMask = MIM_BACKGROUND

[ô] Coloca cor na barra do menu
.hbrBack = CreateSolidBrush(vbYellow)
SetMenuInfo GetMenu(Form1.hWnd), Menu

[ô] Coloca mascara
[ô] MIM_BACKGROUND = BACKGROUND
[ô] MIM_APPLYTOSUBMENUS = SUB_MENUS
.fMask = MIM_BACKGROUND Or MIM_APPLYTOSUBMENUS

[ô] Coloca cor para ITEM 0 do menu
.hbrBack = CreateSolidBrush(vbCyan)
SetMenuInfo GetSubMenu(GetMenu(Form1.hWnd), 0), Menu

[ô] Coloca cor para ITEM 1 do menu
.hbrBack = CreateSolidBrush(RGB(130, 147, 8))
SetMenuInfo GetSubMenu(GetMenu(Form1.hWnd), 1), Menu

[ô] Coloca cor para ITEM 2 do menu
.hbrBack = CreateSolidBrush(RGB(244, 147, 8))
SetMenuInfo GetSubMenu(GetMenu(Form1.hWnd), 2), Menu

End With

[ô] Aplica cores
DrawMenuBar Form1.hWnd

End Sub


Flw's
CIANOS 08/08/2009 00:00:23
#319287
beleza! está bastante claro, mas não vi uma forma de colorir o texto, como a propriedade FORECOLOR dos objetos.
Vou analizar melhor, ai eu respondo. Mas caso descubra como alterar a cor do texto do menu, me responda.

Valeu Brother, de ate mão já agradeço.
CIANOS 11/08/2009 20:53:10
#319619
Não estou conseguindo ainda....!!!!!!!
Tópico encerrado , respostas não são mais permitidas