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 } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了