c++中.rc文件和resource.h的问题

1  .rc文件:是一个资源文件,里面包括了引入的位图文件,窗口,图标,光标等等。

2  .rc文件的作用:

  • 例如,你的程序要生成一个exe文件,而文件的图标是你自定义的图标。你就要在这个工程里面添加Icon资源,添加一个外部的ico文件,保存到.rc里面,因此可以直接调用图标文件
  • 又例如对于你创建一个MFC的工程,基于对话框的,那么它就自动生成一个窗口的资源,保存在.rc里面
3  建立.rc的过程:

file->new->Resource Script->输入名字(比如test.rc)->OK

test.rc里面的内容包括各种窗口的宽度,高度,风格等等.当你拖动一个按钮的大小时,新的大小将被写入到RC文件中,编译的时候编译器根据RC的内容帮我们创建窗口,帮我们设置窗口风格

.rc说白了是一个文本文件(txt),一般配合.h文件使用。

可以用VS创建,可以创建的内容,包括:menuicobmpstring等也可以用记事本打开和创建

4.  是自动生成还是手动生成的问题

VS会根据你在可视化界面的设计会自动管理该文件包括.rc文件。你可以在资源视图里面编写,总比你自己手工编写方便。但是,有时候VS也会出点小问题就需要自己动手进去修改,可以增加灵活性两种手段,各有优劣,优势互补。

不是用不用MFC的问题,看你用不用可视化界面编辑器了,如果不用它,那不仅仅是resource.h,连.rc都要自己写了。具体语法你可以参照MFC自动生成的。

resource.h一般不需要手动写当你添加一个资源并保存时,VS会自动在resource.h文件中增加一个宏定义。该定义确定资源的ID。

但是当你删除一个资源时,VS并不会在resource.h中删除该ID的定义。不过这个不会影响你对资源的使用。因为当你下次添加资源时以相同的ID来定位资源时,VS会自动搜索头文件,如果已经存在并且未被使用,则不重新定义该ID。如果已经存在且已经被使用,系统将会对你进行提示。

resource.h就是.rc文件的头文件。 .rc文件里的常量全在resource.h定义。

一般情况下不用你去写和修改,VS会帮你写和改。但是如果你想用以前的.rc中的资源比如你以前做的对话框你只需复制粘贴就行了。就像下面这段:


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文件然后粘贴进去

但是VS可能会提示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

如果你需要做一个有很多控件的对话框,但是以前做过一个一样的对话框,这时你就可以使用这种方法

 

  • 10
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值