孙鑫教学视频第六课关于菜单,
在用AppendMenu()动态添加菜单后,由于菜单ID未知,响应ON_COMMAND的方法是重载OnCommand();
但现在由于该菜单项没有对应的响应函数,菜单项是灰色的,我不想用“m_bAutoMenuEnable”,因为其他一些菜单项的状态还是希望由MFC自动维护。响应菜单项可以重载OnCommand(),但ON_UPDATE_COMMAND_UI的处理却是无法重载的,请问高手该如何处理,谢谢!!
(教学视频的Menu2就是这个问题,在它里面因为请四次输入创建的Menu刚好对应了几个响应函数没有删除所以表现正常,但他的程序里面第五次输入时就会出现前面所说的"菜单变灰问题")
在用AppendMenu()动态添加菜单后,由于菜单ID未知,响应ON_COMMAND的方法是重载OnCommand();
但现在由于该菜单项没有对应的响应函数,菜单项是灰色的,我不想用“m_bAutoMenuEnable”,因为其他一些菜单项的状态还是希望由MFC自动维护。响应菜单项可以重载OnCommand(),但ON_UPDATE_COMMAND_UI的处理却是无法重载的,请问高手该如何处理,谢谢!!
(教学视频的Menu2就是这个问题,在它里面因为请四次输入创建的Menu刚好对应了几个响应函数没有删除所以表现正常,但他的程序里面第五次输入时就会出现前面所说的"菜单变灰问题")
在菜单中先增加该ID号菜单,增加ON_UPDATE_COMMAND_UI响应处理,再将该菜单项删除掉。
msdn上有现成的例子
刚开始准备重载OnCmdMsg(),但那些奇怪的参数不知道啥意思,MSDN上的介绍也不相其他的函数那么详细,经你提醒,知道了nCode和CN_UPDATE_COMMAND_UI,查看CN_UPDATE_COMMAND_UI的定义,那后面有个注释是CCmdUI*,就试着把void *pEXtra转过去,终于解决问题啦谢谢!!