了解用户是不是选择了子菜单项 MFC
Posted
技术标签:
【中文标题】了解用户是不是选择了子菜单项 MFC【英文标题】:Know whether user selected a sub menu item or not MFC了解用户是否选择了子菜单项 MFC 【发布时间】:2016-03-24 16:34:29 【问题描述】:我有一个 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 而不是非零值。
任何帮助表示赞赏!!!
【问题讨论】:
该代码没有任何作用。是否要在命令旁边添加复选标记? @BarmakShemirani 我刚刚更新了我的帖子并编写了我实现的完整功能。 声明一个成员变量BOOL m_black;
将其初始化为真或假。将OnToggle()
更改为m_black = !m_black;
将OnCheckMenu
更改为pCmdUI->SetCheck(m_black);
【参考方案1】:
UI 不会自行更新,您必须自己更新。
请阅读:How to: Update User-Interface Objects
【讨论】:
你应该详细说明你的答案。如果您的链接失效,您的答案的价值就会受到影响。以上是关于了解用户是不是选择了子菜单项 MFC的主要内容,如果未能解决你的问题,请参考以下文章