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:

1
2
3
//格式:nameID BITMAP filename
//例子:
IDI_ICON_MAIN       ICON       "res\\icon.ico"  //ICON RESOURCE 

(2)) 对话框资源类型:(DIALOG,DIALOGEX 等)(对话框可以包括若干子控件,如菜单,按钮等,定义语法如下)

Example:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//模板
//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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//定义
//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:

1
2
3
4
5
6
7
8
9
10
11
12
//定义 
//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:

1
2
nameID typeID filename 
nameID typeID { raw-data } 

  

 

posted @   wenluderen  阅读(3589)  评论(4编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示