I don't know how, but it seems that when the main menu of a window is opened, the main message loop (PeekMessage/GetMessage, etc...) in my program stops. The behavior seems to be much like if a modal dialog was opened, because my WindowProc still gets called when messages arrive, so there must be some other message loop somewhere keeping that happening.
I don't know how that happens yet (did not test yet), which function or message blocks the main message loop, I am guessing it happens somewhere in the DefWindowProc for some message which has to do with opening the menu.
Is this the default behavior of main menu on Windows? What is really the point of this in that case? Can it be changed so that the main message loop will keep running, instead of some internal one?