MFC的资源文件失效导致无法编辑控件

问题描述:电脑重装系统后,重装VS2012,打开一个VS2012的MFC对话框项目。编译运行后是原来的对话框,但打开资源文件编辑对话框时,却是空白的(MFC默认的对话框,只有yse no两个控件),导致没办法添加或删除控件。原来的对话框是一个包含很多控件和经过细心布局的对话框,没理由重做。

解决办法:

MFC中跟对话框有关的两个文件:"Resouce.h"和"demo.rc"(注:demo是对话框项目名,不同的项目不一样)。问题有可能是重装系统或者VS后,这两个文件里的某些地方不一样了(不兼容了)。为了找出不同点,新建了一个MFC对话框项目,打开其resouce和.rc文件(以C++编辑方式打开),把之前项目这两个文件中不同的内容拷贝过来,拷贝过程中发现,.rc文件存在一个不同的地方:

旧的版本在这里定义语言

#undef APSTUDIO_READONLY_SYMBOLS

/
// 中文(简体,中国) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED

#ifdef APSTUDIO_INVOKED

而新版本却在更靠后的位置定义语言

IDR_MAINFRAME           ICON                    "res\\demo.ico"

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
LANGUAGE 4, 2


把这个语句改一下,问题解决!

以后如果遇到MFC的资源文件损坏、无法打开旧项目的资源编辑窗口等问题(往往是VS的新旧版兼容性造成)时,就可以采用此方法解决。


通过这个问题,也学到一种导入资源文件的方法,只通过代码的复制,就可以往对话框添加控件,如下两步:1、Resouce.h中添加控件的ID的宏,注意ID号不要跟已有控件一样;2、在IDD_DEMO_DIALOG DIALOGEX下的BEGIN后面,添加控件属性,如添加一个编辑框

EDITTEXT        IDC_TIME,228,7,59,22,ES_AUTOHSCROLL | ES_READONLY
编译后,控件就会自动出现在对话框里



  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值