參考:編程
http://blog.csdn.net/zgrjkflmkyc/article/details/16897881字體
http://www.oschina.net/question/565065_72669ui
×××××××××××××××××××××××××××××××××××××××××××××××spa
統一管理:.net
在Win32編程的時候,爲了方便項目中的資源統一管理,IDE提供了一個統一的格式資源文件,這是就是後綴爲.rc的文件。blog
在程序編譯的時候他會被編譯器(具體來講是資源編譯器)生成一個後綴名爲res的二進制文件。資源
rc文件的語法結構:字符串
1 註釋:註釋格式和C語言相同,單行註釋使用//符號。多行註釋使用/××/符號。編譯器
2 預處理命令:預處理指令包括一些頭文件的引用(使用#include,也和C語言相同)string
3 編譯指令:預約義(#define,常量和宏, 不支持帶參數的宏)和條件編譯(#if,#ifdef,#undef,#ifndef,#else,#elif,#endif等)
4 資源定義說明:資源定義的聲明包括「資源」(Resources),「控件」(Controle),「聲明」(Statement)3類
×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
1.資源(Resources):「資源」具備資源 ID,在程序中能夠使用 FindResource ,LoadResource,LoadMenu 等資源相關 API 來操做。常見的定義以下:
(1)從文件導入的資源類型:(BITMAP,ICON,HTML,FONT,CURSOR 等)
Example:
//格式:nameID BITMAP filename //例子: IDI_ICON_MAIN ICON "res\\icon.ico" //ICON RESOURCE
(2)) 對話框資源類型:(DIALOG,DIALOGEX 等)(對話框能夠包括若干子控件,如菜單,按鈕等,定義語法以下)
Example:
//模板 //nameID DIALOGEX x, y, width, height [ , helpID]] [[ optional-statements]] {control-statements } //資源ID 資源類型 x座標,y座標,寬,高 //例子: 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 END
(3) 菜單資源類型:
Example:
//定義 //Menu //menuID MENU [[optional-statements]] { item-definitions ... } //POPUP: //POPUP text, [[optionlist]] { item-definitions ... } //例子: //MENU: IDR_MENU_MAIN MENU BEGIN POPUP "File" // POPUP RESOURCE BEGIN MENUITEM "&Open", ID_FILE_COPY // MENUITEM STATEMENT MENUITEM "&Save", ID_FILE_SAVE40002// MENUITEM STATEMENT MENUITEM SEPARATOR // MENUITEM STATEMENT MENUITEM "E&xit", ID_FILE_EXIT // MENUITEM STATEMENT END POPUP "Eidt" // POPUP RESOURCE BEGIN MENUITEM "&Copy", ID_EIDT_COPY// MENUITEM STATEMENT MENUITEM "&Paste", ID_EIDT_PASTE// 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
(4)字符串表類型:
Example:
//定義 //STRINGTABLE [[optional-statements]] {stringID string ...} //例子 STRINGTABLE BEGIN IDS_1 L"5\x00BC-Inch Floppy Disk" IDS_1a "5\xBC-Inch Floppy Disk" IDS_2 L"Don't confuse \x2229 (intersection) with \x222A (union)" IDS_3 "Copyright \xA92001" IDS_3a L"Copyright \x00a92001" END
(5)自定義類型:
Example:
nameID typeID filename nameID typeID { raw-data }