It really depends on the period. On Windows, Microsoft eventually unified menu bars and tool bars - the widget was called "cool bar" or "rebar", and it was basically a generic container for certain specific kinds of children that organized them into floatable and dockable "bands", with automatic layout: https://docs.microsoft.com/en-us/windows/win32/controls/reba...
The widgets that can be placed on that are buttons with icon & text (either of which could be hidden) that can be regular, toggle, or drop-down; and text and combo boxes. Well, and custom widgets, of course, but the point is that they were different from regular widgets in that they were toolbar-aware. IIRC this all first came as part of IE "common controls" library, even before it was shipped as part of the OS.
So then a top-level menu is just a band with a bunch of buttons with drop-downs that have hideen icons. A regular Win9x-style toolbar is a band with a bunch of buttons with icons but hidden text, and an occasional text box or combo box. And so on.
But the real nifty thing about these is that they could be customized easily, and it was traditional for Win32 apps to expose that to the user. At first it was just about showing/hiding stuff, but Office especially gradually ramped things up to the point where the user could, essentially, construct arbitrary toolbars and menus out of all commands available in the app, assign arbitrary shortcuts to them etc. So if you wanted icons in your main menu, or text-only toolbars, you could have that, too! This wasn't something that regular users would do, but I do recall it not being uncommon for power users of a specific app to really tailor it to themselves.
I get the point about extreme customisability but I still think the "rebar" is ugly as fuck and inconsistent (non uniform look, a salad of different types of elements). As a mac user I didn't have to put up with it and was disgusted when I first saw it.
What was particularly non-uniform about it? Most toolbars looked very similar in most apps, because there were certain UI conventions, similar to main menus. Once customized, sure, it's no longer uniform, but that's the whole point.
The widgets that can be placed on that are buttons with icon & text (either of which could be hidden) that can be regular, toggle, or drop-down; and text and combo boxes. Well, and custom widgets, of course, but the point is that they were different from regular widgets in that they were toolbar-aware. IIRC this all first came as part of IE "common controls" library, even before it was shipped as part of the OS.
So then a top-level menu is just a band with a bunch of buttons with drop-downs that have hideen icons. A regular Win9x-style toolbar is a band with a bunch of buttons with icons but hidden text, and an occasional text box or combo box. And so on.
But the real nifty thing about these is that they could be customized easily, and it was traditional for Win32 apps to expose that to the user. At first it was just about showing/hiding stuff, but Office especially gradually ramped things up to the point where the user could, essentially, construct arbitrary toolbars and menus out of all commands available in the app, assign arbitrary shortcuts to them etc. So if you wanted icons in your main menu, or text-only toolbars, you could have that, too! This wasn't something that regular users would do, but I do recall it not being uncommon for power users of a specific app to really tailor it to themselves.
Visual Studio has it to this day, and takes it to 11 by further allowing to customize context menus through the same UI: https://docs.microsoft.com/en-us/visualstudio/ide/how-to-cus...