知道用户是否选择了子菜单项MFC

时间:2016-03-24 16:34:29

标签: c++ visual-c++ mfc

enter image description here

我有一个MFC应用程序,它在菜单中的矩形项下有一个子菜单。当用户从GUI点击时,子菜单黑色未被选中。我希望用户选择子菜单等界面,除此之外还应该出现刻度标记。但是无法这样做。这是我试图在用户点击时获得用户关注的代码。

This is for ON_COMMAND:  

ON_COMMAND(ID_IMAGEOPTIONS_IMAGEWITHBLACKRECTANGLES, &CMainFrame::OnToggleTestBlackRectangles)      

void CMainFrame::OnToggleTestBlackRectangles()
{
 CMenu menu;
 menu.LoadMenu(IDR_MAINFRAME);
 menu.CheckMenuItem(ID_IMAGEOPTIONS_IMAGEWITHBLACKRECTANGLES, MF_CHECKED);
 UINT SST = menu.GetMenuState(ID_RECTANGLE_BLACK, MF_BYCOMMAND);
 }

This is for ON_UPDATE_COMMAND_UI:

ON_UPDATE_COMMAND_UI(ID_IMAGEOPTIONS_IMAGEWITHBLACKRECTANGLES, &CMainFrame::OnCheckMenu)
void CMainFrame::OnCheckMenu(CCmdUI *pCmdUI)
{

   pCmdUI->SetCheck(0);

}

即使用户点击子菜单,也不会出现刻度线,甚至getmenustate也会返回0而不是非零值。

任何帮助表示赞赏!!!

1 个答案:

答案 0 :(得分:2)

UI不会自行更新,您必须这样做。

请阅读:How to: Update User-Interface Objects