vc6.0 基于对话框的 弹出式菜单 的复选有关问题

vc6.0 基于对话框的 弹出式菜单 的复选问题
1 请不要告诉我在update_command_ui里面setcheck 我尝试过没用
2 请不要告诉我什么加什么空闲消息什么的 因为大家都这么说却没有一个帖子里有介绍
3 能讲明白的我非常感谢 不能讲的抄个例子给我也非常感谢。

PS
学习VC到底该注意什么
1 技术细节 每个功能API的实现
2 比较宏观一点的算法等大家讨论下。谢谢

------解决方案--------------------
其实别人告诉你的都是对的,源码网上也有,贴在这儿可能有点复杂,其实原理很简单,你跟踪一下MFC中对UPDATE_COMMAND_UI的执行过程,它就是在IDLE消息里面来处理所有菜单项的重绘,首先扫描所有的菜单项,针对每个菜单项构造一个CCmdUI对象,然后发送UPDATE_COMMAND_UI消息,消息响应函数里对CCmdUI对象设置属性,然后根据属性值来重新绘制这个菜单项。理解了原理其实很好加的,可以看看MFC中的源码,把这块代码复制到你的对话框类里面去
------解决方案--------------------
响应command消息
GetMenu()->CheckMenuItem(id号,MF_BYCOMMAND|MF_CHECKED );
------解决方案--------------------
CMenu m_dMenu;
m_dMenu.LoadMenu(IDR_MAINFRAME);//IDR_MAINFRAME菜单资源ID.


以下在UPDATE_COMMAND_UI的消息函数中加入:
m_dMenu.GetSubMenu(1)->CheckMenuItem(对应的菜单ID,MF_CHECKED);//GetSubMenu(1)中参数为子菜单索引值.


如有不明白再看看MSDN,看多了就会懂了.