ich versuche mit folgendem Code die Hintergrundfarbe einer Menubar zu ändern:
Code: Alles auswählen
Structure MENUINFO
cbSize.l
fMask.l
dwStyle.l
cyMax.l
hbrBack.i
dwContextHelpID.l
dwMenuData.l
EndStructure
#MIM_BACKGROUND = $2
#MIM_APPLYTOSUBMENUS = $80000000
Define MainMenu.l
Procedure SetMenuBackgroundcolor(Menu.l)
Define hBrush1.l, mi.MENUINFO
hBrush1 = CreateSolidBrush_(RGB(255,0,0))
With mi
mi\cbSize = SizeOf(MENUINFO)
mi\fMask = #MIM_BACKGROUND|#MIM_APPLYTOSUBMENUS
mi\hbrBack = hBrush1
EndWith
SetMenuInfo_(Menu, @mi)
DrawMenuBar_(WindowID(0))
EndProcedure
OpenWindow(0, 0, 0, 500, 300, "Test", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
MainMenu = CreateMenu(1, WindowID(0))
MenuTitle("Titel1")
MenuItem(1, "Item1")
MenuTitle("Titel2")
MenuItem(1, "Item1")
SetMenuBackgroundcolor(MainMenu)
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_CloseWindow
DeleteObject_(hBrush1)
EndIf
Until Event = #PB_Event_CloseWindow
Gibt es die Möglichkeit auch diese Hintergrundfarbe zu ändern?
Gruß Michael
Edit:
Habe herausgefunden das Dies nur Ownerdrawn Objekten funktioniert indem man das Menü selbst zeichnet.
Vielen Dank an die Microsoft Programmierer wegen der zickigen Controls.