Why can't I toggle menu?
-
Hello, Why can't I toggle menu? I have system tray menu that I want to toggle the 3rd menu item. But the problem is it doesn't toggle when I click it. Help me, please... ON_COMMAND(ID_FLOAT, OnFloat) void CMainFrame::OnFloat() { CMenu* mmenu = GetMenu(); CMenu* submenu = mmenu->GetSubMenu(2); UINT state = submenu->GetMenuState(ID_FLOAT, MF_BYCOMMAND); if (state & MF_CHECKED) { submenu->CheckMenuItem(ID_FLOAT, MF_UNCHECKED | MF_BYCOMMAND); } else { submenu->CheckMenuItem(ID_FLOAT, MF_CHECKED | MF_BYCOMMAND); } } Thank you, :-O
-
Hello, Why can't I toggle menu? I have system tray menu that I want to toggle the 3rd menu item. But the problem is it doesn't toggle when I click it. Help me, please... ON_COMMAND(ID_FLOAT, OnFloat) void CMainFrame::OnFloat() { CMenu* mmenu = GetMenu(); CMenu* submenu = mmenu->GetSubMenu(2); UINT state = submenu->GetMenuState(ID_FLOAT, MF_BYCOMMAND); if (state & MF_CHECKED) { submenu->CheckMenuItem(ID_FLOAT, MF_UNCHECKED | MF_BYCOMMAND); } else { submenu->CheckMenuItem(ID_FLOAT, MF_CHECKED | MF_BYCOMMAND); } } Thank you, :-O
In MFC you're not using CheckMenuItem etc. Instead, you add special ON_UPDATE_COMMAND_UI handler which gets the CCmdUI object on input. One of the methods is SetCheck, which is all you need to have menu items checked. Tomasz Sowinski -- http://www.shooltz.com