Click here to Skip to main content
11,477,400 members (77,184 online)
Rate this: bad
good
Please Sign up or sign in to vote.
See more: Win32 MFC
For a popupmenu having submenu as shown below
MainMenuItem1
MainMenuItem2->
             SubMenu2a
             SubMenu2b
MainMenuItem3

the main popupmenu can be opened using
mainMenu.TrackPopupMenu(TPM_NONOTIFY|TPM_RETURNCMD...);

The user can move the cursor to "MainMenuItem2" to popup the submenu.

Is it possible to open up the mainmenu along with the submenu in opened state programmatically?

The reason for doing this is to have an option for the user to select the submenuitem/mainmenuitem in one single right click.
Posted 21-Jan-13 22:19pm
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

I am not sure if it will work, but doing this should open the first SubMenu of the main menu:

CMenu* pPopup = mainmenu.GetSubMenu(0);
pPopup->TrackPopupMenu( TPM_LEFTALIGN, ptMousePos.x, ptMousePos.y, this );

Obviously, you would have to specify the coordinates where the SubMenu should open.

If you can compile your program with the latest MFC (with the feature pack) you could switch to CMFCPopupMenu[^]. It is much nicer, with an optional animation and has more methods
  Permalink  
Rate this: bad
good
Please Sign up or sign in to vote.

Solution 2

Yes I can show only the submenu using the solution but,
sorry, my question was how to show a main-context-menu along with its sub-menu in a single right-click.

Anyway, I abandoned this feature altogether.
  Permalink  

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 Sergey Alexandrovich Kryukov 274
1 Richard Deeming 245
2 _duDE_ 165
3 Tomas Takac 150
4 Sascha Lefèvre 145
0 Sergey Alexandrovich Kryukov 7,675
1 OriginalGriff 7,246
2 Sascha Lefèvre 3,034
3 Maciej Los 2,491
4 Richard Deeming 2,305


Advertise | Privacy | Mobile
Web02 | 2.8.150520.1 | Last Updated 28 Jan 2013
Copyright © CodeProject, 1999-2015
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100