如题,用vc2010 随便弄一个有菜单的程序然后使用资源管理器(在Menu那个树目录中)添加一个菜单,并加入对应的ID,编译运行,新添加的菜单正常显示这个时候,我想更改一下新添加的菜单的名字双击后打开属性,在caption栏中修改名字,编译运行,名字还是之前的那个名字!!不知道大家是怎样解决这个问题的?使用VC6是正常的,是不是vc2010用了新的MFC类而导致这个问题呢?求解答!!!

解决方案 »

  1.   

    开来是没有人懂的了,就让我自己来解答吧!其实是很简单的,既然我使用资源管理工具(或者直接在rc文件里面)更改了一个menu item 的名字,编译通过了的话,那是一定是修改成功的,那为什么显示的时候还是显示之前的数据呢?这肯定是在某一个地方keep住了之前保存的名字!!!那么MFC会在哪里保存这个旧的东西,而且又会在程序中读取出来呢?首先我在编译rc的目录下面找了一下,没有发现因为编译而产生出一个新的与rc有关系的东西(因为编译rc文件其实只会连接进exe|lib|dll文件中),所以这可能是会保存在注册表里面!!!!果然,我打开注册表,找到对应我的软件的那个位置,里面有很多叫做MFCToolBar-XXX的东西,应该是这个了,删除之!!置于我为什么能够找到这里,这是因为再源码中是有记录会保存到注册表里面的!!这个还得感谢我公司的大虾,帮我调试了一段时间然后找到的!!!编译连接我的程序,运行!之前修改的东西能够正确显示了!!问题就这样解决了!