MFC单文档程序如何改变菜单项选中状态

就像默认的视图菜单下有两个项:工具栏和状态栏,点一下,打勾,再点一下,去掉勾然后我自定义的一个菜单中添加了oncommand消息处理函数,里面的语句是GetMenu()-... 就像默认的视图菜单下有两个项:工具栏和状态栏,点一下,打勾,再点一下,去掉勾
然后我自定义的一个菜单中添加了oncommand消息处理函数,里面的语句是
GetMenu()->GetSubMenu(3)->CheckMenuItem(0,MF_BYPOSITION|MF_CHECKED);
然后运行时怎么点都不会打勾
但是如果这条语句放在oncreate函数中的话会一运行就已经打上勾了
求解
展开
 我来答
year_120
2011-11-16 · 超过35用户采纳过TA的回答
知道答主
回答量:125
采纳率:0%
帮助的人:93.7万
展开全部
可以的。你的消息响应函数是不是在CMainFrame类中?但是你只写上面的语句只能完成以下功能:程序运行时没有勾,然后点击打上勾。但是在次点击时勾不能取消。因为你没有后续去掉勾的程序,你可以加一个判断的BOOL值进行判断就可以了。
至于你放在oncreate()函数中一运行就出来了,是因为本身就是建立框架类窗口的。你只要一运行,他就按照你的程序直接就构建出窗口了,当然也包括你要求的打上勾。。。
追问
是在CMainFrame类中,但是实际运行效果是点了完全没反应,没打钩的时候点也不会打钩
追答
不啊。我运行了的。。没打勾的时候点了,可以打上勾。。要么你的GetSubMenu(3)-是哪个菜单?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式