文章目录
- Windows 资源文件(.rc文件)
- 资源(Resources)类型
- 从文件导入的(BITMAP,ICON,HTML,FONT,CURSOR 等)
- 对话框资源类型:(DIALOG,DIALOGEX 等)
- 菜单资源类型
- 字符串表类型
- 自定义类型
- Resource.h资源声明文件
- 版本信息(VERSIONINFO)
- 1. 打开.rc文件
- 2. 添加版本信息
Windows 资源文件(.rc文件)
rc 是resource的简称,对应着VS中的资源视图文件,目的是为了对程序中用到的大量的资源进行统一的管理。rc 文件是资源文件,包括比如对话框、菜单、图标、字符串、版本等资源信息。在win32编程中,.rc在程序编译时会被资源编译器编译生成一个.res的二进制文件。
资源(Resources)类型
从文件导入的(BITMAP,ICON,HTML,FONT,CURSOR 等)
nameID BITMAP filename
IDI_ICON_MAIN ICON "res\\icon.ico" //ICON RESOURCE
对话框资源类型:(DIALOG,DIALOGEX 等)
nameID DIALOGEX x, y, width, height [ , helpID]] [[ optional-statements]] {control-statements }
IDD_DIALOG_ABOUT DIALOGEX 0, 0, 290, 59 //DIALOGEX RESOURCE
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "Dialog" // CAPTION STATEMENT
FONT 8, "MS Shell Dlg", 400, 0, 0x1 // FONT STATEMENT
BEGIN
LTEXT "Windows Resource Demo",3001,26,14,119,8,SS_NOPREFIX // CONTROL
LTEXT "Copyright (C) 2008",3002,26,30,119,8 // CONTROL
DEFPUSHBUTTON "OK",IDOK,234,14,32,14,WS_GROUP // CONTROL
DEFPUSHBUTTON "Quit",IDCANCEL,234,31,32,14,WS_GROUP // CONTROL
菜单资源类型
//MENU:
menuID MENU [[optional-statements]] { item-definitions ... }
//POPUP:
POPUP text, [[optionlist]] { item-definitions ... }
//MENU:
IDR_MENU_MAIN MENU //MENU RESOURCE
BEGIN
POPUP "File" // POPUP RESOURCE
BEGIN
MENUITEM "&Open", ID_FILE_COPY // MENUITEM STATEMENT
MENUITEM SEPARATOR // MENUITEM STATEMENT
MENUITEM "E&xit", ID_FILE_EXIT // MENUITEM STATEMENT
END
POPUP "Help" // POPUP RESOURCE
BEGIN
MENUITEM "&About", ID_HELP_ABOUT// MENUITEM STATEMENT
END
END
//POPUP:
IDR_MENU_POPUP MENU
BEGIN
POPUP "POPUP"
BEGIN
MENUITEM "&Copy", ID_POPUP_COPY
MENUITEM "&Paste", ID_POPUP_PASTE
MENUITEM "Cu&t", ID_POPUP_CUT
POPUP "&Info"
BEGIN
MENUITEM "Co&unt", ID_INFO_A
MENUITEM "&Size", ID_INFO_B
END
END
END
字符串表类型
自定义类型
Resource.h资源声明文件
#define IDD_DIALOG_ABOUT 101
在使用资源 ID 时经常会看到一个宏 MAKEINTRESOURCE,这个宏的功能是将资源 ID 转换为资源名(字符串形式),很多 API 函数在引用资源时都是通过资源名来引用的。
版本信息(VERSIONINFO)
1. 打开.rc文件
2. 添加版本信息
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,0,0
PRODUCTVERSION 1,0,0,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x29L
#else
FILEFLAGS 0x28L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904e4"
BEGIN
VALUE "Comments", "Developed By XXX Inc."
VALUE "CompanyName", "XXX Inc."
VALUE "FileDescription", ""
VALUE "FileVersion", "1.0.0.0"
VALUE "InternalName", "XXX.exe"
VALUE "LegalCopyright", "Copyright (C) 2009-2010"
VALUE "LegalTrademarks", "XXX"
VALUE "OriginalFilename", "XXX.exe"
VALUE "PrivateBuild", "beta"
VALUE "ProductName", ""
VALUE "ProductVersion", "1.0.0.0"
VALUE "SpecialBuild", "beta"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1252
END
END
Windows 资源文件(.rc文件)