This solution is a bit misleading because it does not
HIDE the menu. Instead, it
COMPLETELY REMOVES the menu, resulting in total unavailability of the menu functions. This means that, for example, if you had a typical menu that include a FILE popup that contained an EXIT item, and that 'F' and 'X' were tagged as menu hot keys, all of the users who had learned to exit your program by pressing Alt+F, Alt+X would discover that no longer works in full screen mode when this approach to "hiding" the menu is used. Exiting may not be important, but all other menu hot key operations would, obviously, be similarly non-functional. If you do not define hot keys and use only accelerators, you will avoid this but at the expense of being a slightly non-standard Windows program, since menu hot keys are reasonably standard and expected.
I've been searching for quite some time for a way to
actually hide a menu without deleting/disabling it completely, but had no luck. Of course, you can leave the menu enabled and set the top of your window to the height of a menu above the top of the screen, but that's not good if there happens to be a display
above the screen where you're full screened -- then your menu will be visible on the screen above. If that isn't an issue, change the top coordinate of your window from the top line of the screen to the top line
minus
GetSystemMetrics(SM_CYMENU)
and leave the menu alone. You won't see it and it will work.