# Visual Basic > Visual Basic 6 and Earlier >  [RESOLVED] VB6 Menu bar BackColor

## DaveDavis

Honestly I didn't do any coding in VB6 for years already. I forgot everything. I compare VB6 and .NET's menu bar color, VB6 is a blank White color which is ugly. How to turn it appearance like .NET?

----------


## ISAWHIM

Same issue I discovered the other day too... Nothing works to fix it. Something inside the actual OCX is failing. Unfortunately, unless someone hacks the built-in menu-editor, it will remain broken.

The only other option is to create your own "menu system", or hijack the "drop-down" windows in the real menu system, while the main menu is forced to being hidden with API calls. (Might be able to force the menu to be "transparent", revealing the color below, unless that is what the issue is, and white is the color below the menu. Title-bar background color may actually change it, if that is the case. I think the menu is just extending the hidden canvas below the "client area", used to draw the windows inner-guts, like the title bar and inner borders.)

The menu, in the old system, when it did work, had a background color that matched the "button face" color, I believe, by default. You can still change the other colors in the menu, but that "container" background is never going to change with any normal settings. It is defaulting to the white color that the original "form" had, in that OCX add-on.

You could just embrace it. Like it's a void and the selected items are "tabs". :P

Not sure when it broke, but changing compatibility modes offers no resolution either. (Normally, you could flip to XP compatibility and it would work right. Clearly, they broke something in an update and don't care about fixing it now. More will break, I am sure, in the next coming years.)

----------


## wqweto

> Honestly I didn't do any coding in VB6 for years already. I forgot everything. I compare VB6 and .NET's menu bar color, VB6 is a blank White color which is ugly. How to turn it appearance like .NET?


VB6 is using system provided menus (i.e. default Windows menus) while in .Net these are custom menus implemented "by hand" which has nothing to do with OS provided ones. They pretty much reimplemented the menus from scratch so they can do whatever they want (e.g. change color, animate, fade, shortcuts, etc.) which is not possible with system provided ones.

No, you cannot just set a *Const MNU_ENHANCED_APPEARANCE As Long = &H20000* flag in VB6 and get .Net menus because there is no such flag the way there is no Santa Clause for anyone grown up enough. Not possible before someone does the actual coding and reimplement similar custom menus as an ActiveX Control.

This or buy a commercial ActiveX Control which does custom menus. . .

cheers,
</wqw>

----------


## georgekar

Be more creative. Stop using menus, and just use a listbox. Now screen are too wide to include a menu system in a vertical orientation, in a left or right pane.

----------


## SearchingDataOnly

If I had to implement .NET MenuBar, I would prefer to put the Label control array in a Picture-Box and implement "*Hot-Tracking*" via *Drag-Drop*.

Of course, if you like *Owner-Drawn*, you can plot everything you want directly in PictureBox or UserControl.

----------


## DaveDavis

OK, look like not simple way... I will use a picturebox with some labels...

----------

