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

2  .rc文件的作用:

  • 例如,你的程序要生成一个exe文件,而文件的图标是你自定义的图标。你就要在这个工程里面添加Icon资源,添加一个外部的ico文件,保存到.rc里面,因此可以直接调用图标文件。



android rc文件增加service .rc 文件_ico



android rc文件增加service .rc 文件_自动生成_02



android rc文件增加service .rc 文件_#define_03



android rc文件增加service .rc 文件_自动生成_04


  • 又例如对于你创建一个MFC的工程,基于对话框的,那么它就会自动生成一个窗口的资源,保存在.rc里面。

3  建立.rc的过程:


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

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

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


可以用VS创建,可以创建的内容,包括:menu,ico,bmp,string等。也可以用记事本打开和创建。


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

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