您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> VC/MFC >> MFC怎么在选中的菜单项前面打勾并获取菜单项的值

MFC怎么在选中的菜单项前面打勾并获取菜单项的值

来源:网络整理     时间:2016/7/2 19:43:26     关键词:

关于网友提出的“ MFC怎么在选中的菜单项前面打勾并获取菜单项的值”问题疑问,本网通过在网上对“ MFC怎么在选中的菜单项前面打勾并获取菜单项的值”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: MFC怎么在选中的菜单项前面打勾并获取菜单项的值
描述:

菜单项下拉是串口COM1,怎么选中后前面打勾然后怎么把COM1获取?
CMenu *pMenu=GetMenu();
ASSERT_VALID(pMenu);
CMenu *pSubMenu=pMenu->GetSubMenu(1);
ASSERT_VALID(pSubMenu);
pSubMenu->CheckMenuItem(ID_PARAMETER_COM1,MF_BYCOMMAND|MF_CHECKED);
上面这段代码放到BOOL CdriverDlg::OnInitDialog()中运行后就直接打勾了还不能更换,怎么弄呢?本人初学者,帮帮忙吧,谢谢


解决方案1:

在‘资源视图’(可在view菜单打开)中,点‘Menu’,在可视化环境中点击菜单,右键单击菜单项“com1”,再谈出菜单中点‘添加事件处理程序’。其中command 消息处理函数当点击菜单项目时被调用;UPDATE_command_UI 消息处理函数用于当点击菜单项目时更改界面。在这个函数里使用setcheck可以设置菜单项 打勾与否。
例子:   
 void    CMainFrame::OnUpdateSelectBlue(CCmdUI*    pCmdUI)    
{   
   pCmdUI->SetCheck(true);//把菜单选中    
}
根据某个状态开关菜单,也可以为菜单生成命令接口更新成员函数。比如,在Edit菜单中,如果当前剪贴板没有内容,Paste(粘贴)菜单应当设为无效,程序可以这么写:
void CMainFrame::OnUpdateEditPaste(CCmdUI* pCmdUI)
{
     pCmdUI->Enable(!IsClipboardEmpty());
}  
其中IsClipboardEmtpy()是读者自己编写的函数,用于判断剪贴板中是否有内容

解决方案2:

你可以通过一个Bool类型的变量进行判断,如果为真就setCheck(True),如果为假就setCheck(Flase)

解决方案3:

getcheck 或者setcheck函数吧?

解决方案4:

对话框要实现对菜单标记的功能需要处理OnInitMenuPopup
参考http://kelvin0008.blog.sohu.com/10803055.html


以上介绍了“ MFC怎么在选中的菜单项前面打勾并获取菜单项的值”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2219623.html

相关图片

相关文章