C++: Menu does not disappear when mouse clicked outside

From MSDN:

To display a context menu for a notification icon, the current window must be the foreground window before the application calls TrackPopupMenu or TrackPopupMenuEx. Otherwise, the menu will not disappear when the user clicks outside of the menu or the window that created the menu (if it is visible).

So whats the solution?

Simple. Just call the function on the window receiving the menu messages before JUST before you call TrackPopupMenu() or TrackPopupMenuEx().

SetForegroundWindow(m_hwnd);
TrackPopupMenuEx(hMenu, ..., x, y, m_hwnd, ...);
 
Copyright © Twig's Tech Tips
Theme by BloggerThemes & TopWPThemes Sponsored by iBlogtoBlog