关于dlg使用menu的问题
在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让那个小勾出来
大道理要听,更希望能够看到实例
谢谢各位了,看那么长的帖子
[解决办法]
上面的只是一个函数,你加进去就可以了。
如果还试不好,就试试这样的方法吧!
http://www.codeguru.com/cpp/w-d/dislog/commandui/article.php/c1911/
[解决办法]
没用过MFC,看起来SetCheck是虚函数,能重载自己实现吗?
[解决办法]
用CMenu去attatch,然后用setcheck可以的阿!
[解决办法]
没那么复杂啊,对话框的属性里不是有个 "菜单 "选项的吗?可以在创建的菜单里自己选的啊,操作起来和视图类一样啊
[解决办法]
还真是出不来诶但是pCmdUI-> Enable(false);管用的