MFC 之 resource.h和*.rc的关系
先说问题,今天发现删除控件(如static),不会自动更新resource.h,而且修改static控件id,会在resource.h中同时记录修改前后的两个id,但后面的数值(1072)是相同的,下图:
验证,手动从窗体上删除static控件 ,resource.h并不会自动更新。这样就有个风险就是,resourc.h中的控件ID在代码中农工仍然是可以被使用的,需要注意!
有次,手动删除新添加的static后,编译居然报错了,查了下,还是因为id修改的原因,屏蔽掉resource.h中的定义就好了。
你只需复制粘贴就行了。就象下面这段:
IDD_JK_DIALOG DIALOGEX 0, 0, 320, 200
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
CAPTION "jk"
FONT 9, "宋体"
BEGIN
PUSHBUTTON "学号",IDC_BUTTON1,25,75,62,22
PUSHBUTTON "姓名",IDC_BUTTON2,179,75,64,24
EDITTEXT IDC_EDIT1,105,75,57,24,ES_AUTOHSCROLL
EDITTEXT IDC_EDIT2,261,75,46,24,ES_AUTOHSCROLL
END
你可以复制到你新的工程里去。方法是用记事本打开.rc文件然后粘贴进去。
vc可能会提示IDD_JK_DIALOG IDC_BUTTON1,IDC_BUTTON2,IDC_EDIT1,IDC_EDIT2没有定义,这时你只需要用记事本打开resource.h
在里面加:
#define IDD_JK_DIALOG 102
#define IDC_BUTTON1 1000
#define IDC_BUTTON2 1001
#define IDC_EDIT1 1002
#define IDC_EDIT2 1003
如果你需要做一个有很多控件的对话框,但是以前做过一个一样的对话框,这时你就可以使用这种方法。