关于dlg使用menu的问题

skypu 2007-04-23 04:07:56
在SDI/MDI里面,menu有一个SetCheck(int nCheck)的方法,可以让我根据需要来设定这个菜单项的状态--OnUpdateMenuA(CCmdUI* pCmdUI)
这个没有问题

但是,在dlg里面,我调用OnUpdateMenuA(CCmdUI* pCmdUI)里面的SetCheck(int nCheck)方法却不行

跟踪发现

SDI/MDI的SetCheck会进入void CCmdUI::SetCheck(int nCheck)在Microsoft Visual Studio\VC98\MFC\SRC\CMDTARG.CPP里面,有函数的执行代码

而dlg的SetCheck会进入void CTestCmdUI::SetCheck(int)在Microsoft Visual Studio\VC98\MFC\SRC\CMDTARG.CPP里面,而且这个函数里面写着一句话说什么// do nothing -- just want to know about calls to Enable

那么有没有办法把dlg的menu作成和SDI/MDI一样的么?就是能够setcheck让那个小勾出来
大道理要听,更希望能够看到实例
谢谢各位了,看那么长的帖子
...全文
452 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
skypu 2007-04-27
  • 打赏
  • 举报
回复
看来此问题那一得到解决,今天17点结贴,散分……
老有未结贴心理不踏实,怕被扣信誉分……
skypu 2007-04-27
  • 打赏
  • 举报
回复
算了,散分万岁
我自己看看
skypu 2007-04-27
  • 打赏
  • 举报
回复
汗……
enable这个没什么用的
jinjinandpp 2007-04-27
  • 打赏
  • 举报
回复
还真是出不来诶但是pCmdUI->Enable(false);管用的
skypu 2007-04-27
  • 打赏
  • 举报
回复
jinjinandpp(巫婆老公) ( )
这样做没问题
但是没有办法setcheck
不信你可以试试看
skypu 2007-04-27
  • 打赏
  • 举报
回复
不对
我不是这个意思
我要让他能够setcheck
jinjinandpp 2007-04-27
  • 打赏
  • 举报
回复
没那么复杂啊,对话框的属性里不是有个"菜单"选项的吗?可以在创建的菜单里自己选的啊,操作起来和视图类一样啊
skypu 2007-04-27
  • 打赏
  • 举报
回复
jxufeng(玉龙猪) ( )
这个怎么弄呢?
jxufeng 2007-04-27
  • 打赏
  • 举报
回复
用CMenu去attatch,然后用setcheck可以的阿!
skypu 2007-04-27
  • 打赏
  • 举报
回复
没人来看看么?
ringphone 2007-04-25
  • 打赏
  • 举报
回复
没用过MFC,看起来SetCheck是虚函数,能重载自己实现吗?
skypu 2007-04-24
  • 打赏
  • 举报
回复
http://blog.csdn.net/laiyiling/archive/2004/08/27/87027.aspx
这个函数我加进去了
那么是不是说我每次点击菜单项的话应该被这个函数拦截到呢?
但是事实上没有
我用类向导为菜单项目添加ON_UPDATE_COMMAND_UI
那个ON_UPDATE_COMMAND_UI被处理,跟踪发现处理的仍然是void CTestCmdUI::SetCheck(int)
也就是说,没有执行任何实质性的代码


http://www.codeguru.com/cpp/w-d/dislog/commandui/article.php/c1911/
又是E文,我先慢慢看看~~~
Kudeet 2007-04-23
  • 打赏
  • 举报
回复
上面的只是一个函数,你加进去就可以了。


如果还试不好,就试试这样的方法吧!
http://www.codeguru.com/cpp/w-d/dislog/commandui/article.php/c1911/
skypu 2007-04-23
  • 打赏
  • 举报
回复
把那个E文的网页看完了,跟着上面说的去做,反复做都不行……
汗,哪位高人相助啊~~
skypu 2007-04-23
  • 打赏
  • 举报
回复
You cannot change the state of a menu item from its command user-interface handler if the menu is attached to a dialog box in Visual C++
我按照blog里面的说法作了一次,发现添加的消息入口函数并没有被拦截到
也就是说没有起作用
然后看更详细信息,就看到了上面这么一句英文……
Kudeet 2007-04-23
  • 打赏
  • 举报
回复
http://blog.csdn.net/laiyiling/archive/2004/08/27/87027.aspx

1,649

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 非技术类
社区管理员
  • 非技术类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧