首页 新闻 会员 周边 捐助

vc2008中更改菜单名编译运行后还是之前的名字????

0
悬赏园豆:5 [已关闭问题] 关闭于 2012-03-30 16:00

通过向导创建了一个MFC程序,在资源管理器下的menu界面手动添加了一个菜单项,比如说123,编译运行正常。

但是我在属性栏随便更改一个别的名字,比如说000,重新编译运行后显示的还是123。试了几次,改什么都不行。

在网上看见一个人也发了这样的问题,但是最后的解决方案不太懂,贴出他的问题和解决方案,请各位参考一下,看看是怎么回事?

 

摘录:::

用vc2010 随便弄一个有菜单的程序

然后使用资源管理器(在Menu那个树目录中)添加一个菜单,并加入对应的ID,编译运行,新添加的菜单正常显示

这个时候,我想更改一下新添加的菜单的名字

双击后打开属性,在caption栏中修改名字,编译运行,名字还是之前的那个名字!!

不知道大家是怎样解决这个问题的?使用VC6是正常的,是不是vc2010用了新的MFC类而导致这个问题呢?

求解答!!!

 

开来是没有人懂的了,就让我自己来解答吧!

其实是很简单的,既然我使用资源管理工具(或者直接在rc文件里面)更改了一个menu item 的名字,编译通过了的话,那是一定是修改成功的,那为什么显示的时候还是显示之前的数据呢?这肯定是在某一个地方keep住了之前保存的名字!!!

那么MFC会在哪里保存这个旧的东西,而且又会在程序中读取出来呢?

首先我在编译rc的目录下面找了一下,没有发现因为编译而产生出一个新的与rc有关系的东西(因为编译rc文件其实只会连接进exe|lib|dll文件中),所以这可能是会保存在注册表里面!!!!

果然,我打开注册表,找到对应我的软件的那个位置,里面有很多叫做MFCToolBar-XXX的东西,应该是这个了,删除之!!置于我为什么能够找到这里,这是因为再源码中是有记录会保存到注册表里面的!!

这个还得感谢我公司的大虾,帮我调试了一段时间然后找到的!!!

编译连接我的程序,运行!之前修改的东西能够正确显示了!!

问题就这样解决了!

c++
smoono的主页 smoono | 初学一级 | 园豆:195
提问于:2012-02-28 00:16
< >
分享
所有回答(3)
0

额.不知道清理后,重新生成解决方案行不

临点温度 | 园豆:210 (菜鸟二级) | 2012-02-28 17:31

试过了,不行呀

支持(0) 反对(1) smoono | 园豆:195 (初学一级) | 2012-02-29 01:15

可以的,我用上述方法解决了

支持(0) 反对(0) bkx | 园豆:200 (初学一级) | 2015-05-21 09:13
0

找到了解决方案上说的位置:

HK_CORRENT_USER-->SOFTWARE-->应用程序向导生成的本地应用程序-->项目

smoono | 园豆:195 (初学一级) | 2012-02-29 22:16
0

这个其实是由于VC2010使用了新的MFC库导致的。新的MFC库中加入的内容(包括ribbon)其实是从BCG中改写的,而使用BCG的程序在退出程序时就会在注册表中记录菜单、bar等的信息,所以会出现你说的现象。

希望睿智 | 园豆:215 (菜鸟二级) | 2012-03-02 23:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册