MFC 的資源文件 就是那個后綴名是 .rc的那個


參考:

http://blog.csdn.net/zgrjkflmkyc/article/details/16897881

http://www.oschina.net/question/565065_72669

×××××××××××××××××××××××××××××××××××××××××××××××

統一管理:

在Win32編程的時候,為了方便項目中的資源統一管理,IDE提供了一個統一的格式資源文件,這是就是后綴為.rc的文件。

在程序編譯的時候他會被編譯器(具體來說是資源編譯器)生成一個后綴名為res的二進制文件。

rc文件的語法結構:

1 注釋:注釋格式和C語言相同,單行注釋使用//符號。多行注釋使用/××/符號。

2 預處理命令:預處理指令包括一些頭文件的引用(使用#include,也和C語言相同)

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 }  

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM