关于MFC中动态添加菜单项及其命令响应和即时enable菜单项的问题

孙鑫教学视频第六课关于菜单,在用AppendMenu()动态添加菜单后,由于菜单ID未知,响应ON_COMMAND的方法是重载OnCommand();但现在由于该菜单项没... 孙鑫教学视频第六课关于菜单,
在用AppendMenu()动态添加菜单后,由于菜单ID未知,响应ON_COMMAND的方法是重载OnCommand();
但现在由于该菜单项没有对应的响应函数,菜单项是灰色的,我不想用“m_bAutoMenuEnable”,因为其他一些菜单项的状态还是希望由MFC自动维护。响应菜单项可以重载OnCommand(),但ON_UPDATE_COMMAND_UI的处理却是无法重载的,请问高手该如何处理,谢谢!!
(教学视频的Menu2就是这个问题,在它里面因为请四次输入创建的Menu刚好对应了几个响应函数没有删除所以表现正常,但他的程序里面第五次输入时就会出现前面所说的"菜单变灰问题")
哪位大神能不能给讲讲
展开
 我来答
intehel
2014-08-30 · TA获得超过1293个赞
知道大有可为答主
回答量:1601
采纳率:100%
帮助的人:1761万
展开全部
AppendMenu添加的菜单项ID可以自己指定啊,所以你完全可以在编译时将该ID对应的ON_COMMAND和ON_UPDATE_COMMAND_UI写好。

BOOL AppendMenu (
UINT nFlags,
UINT nIDNewItem = 0,
LPCTSTR lpszNewItem = NULL);
第二个参数就可以指定ID。
更多追问追答
追问
但是添加的菜单项及其响应是在程序运行时根据用户的输入决定的。
追答
那重载OnCmdMsg处理WM_COMMAND就行了,WM_COMMAND也包含了UPDATE_COMMAND_UI的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式