巧用VC工程下的rc文件(发表时间: 2008-12-30 17:20:00)

【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/miaowei/40117.html 复制链接

分享到: 0

标签:VC rc文件 资源文件 窗口尺寸设置 添加资源

纵观真个的VC工程,这里指那些包含界面的VC工程。主要由三方面构成,算法,资源,以及对资源的调用。算法是整个程序的核心,资源包含一些在算法中可能会用到的数据(二进制)和一些UI方面的显示效果资源。而对资源的调用则是利用开发工具提供的一套标准API(如Win32 API) 对你资源的调用来完成对资源的操作。

今天在这里,我主要是想结合自己对资源这一块的一些体会与大家交流交流。不足之处请高手指出,以便改正。

所谓资源,我们首先应该想到的是程序中的rc文件,按说对资源的操作应该是操作这个文件的事情,可惜的是,自从微软提供了开发向导以后,大家都偏向于使用程序向导来完成一些资源的添加,修改,尺寸设置以及layout的工作,包括我自己,应该这实在是太方便了。但是万物有其利的一面,必然有其害的一面,这导致了大家对资源本身的了解较少,造成了除了向导外就不知所以然的结果。我周边就有人常问我同一个问题,问什么我在资源中点击右键添加一个Dialog后,总是默认的名字IDD_DIALOG1,我说这不就是个资源ID吗,你在ID属性中将它的名字改该就是。好的,Dialog的问题搞定了。接着,他在工程中添加了一个自定义的资源(费了好一翻劲),同样他加了一个资源,同样点右键,这时,没有属性选项了,傻眼了。其实,这些问题都可以通过在rc文件中操作,既然它们都是资源,那么这些定义都是在rc文件中定义的,你利用向导做的这些工作,只是微软帮你把它写进了rc文件之中了。那么你要是碰到了问题,自己进入rc文件中看看究竟不是很好吗。因为那才是资源的源头。

好像今天时间不够了,马上下班。下次接着写关于利用rc文件实现控件大小的调整和layout以及如何在rc中添加系统资源和自定义资源,而完全可以脱离向导,就像平时写文档一样。

接着上一次的关于资源文件(rc文件)继续说,这里主要说两个内容。

一 利用rc文件进行界面的布局

打开一个资源文件,如FHRDemo.rc,右键选择查看代码,可以看到文本描述的资源文件,这里截取其中的一段。

// Dialog
//

IDD_ABOUTBOX DIALOGEX 0, 0, 235, 55
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About FHRDemo"
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
    ICON            IDR_MAINFRAME,IDC_STATIC,11,17,20,20
    LTEXT           "FHRDemo Version 2.0",IDC_STATIC,40,10,119,8,SS_NOPREFIX
    LTEXT           "Copyright (C) 2007",IDC_STATIC,40,25,119,8
    DEFPUSHBUTTON   "OK",IDOK,178,7,50,16,WS_GROUP
END

IDD_FHRDEMO_FORM DIALOGEX 0, 0, 286, 211
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
    LTEXT           "",IDC_STATIC_INPUT_AREA,64,0,174,208,NOT WS_VISIBLE | WS_BORDER
    PUSHBUTTON      "0",IDC_BUTTON_HIT0,0,0,63,22
    PUSHBUTTON      "2",IDC_BUTTON_HIT2,0,43,63,21
    PUSHBUTTON      "1",IDC_BUTTON_HIT1,0,22,63,21
    PUSHBUTTON      "3",IDC_BUTTON_HIT3,0,64,63,21
    PUSHBUTTON      "5",IDC_BUTTON_HIT5,0,106,63,21
    PUSHBUTTON      "6",IDC_BUTTON_HIT6,0,127,63,21
    PUSHBUTTON      "7",IDC_BUTTON_HIT7,0,147,63,21
    PUSHBUTTON      "8",IDC_BUTTON_HIT8,0,168,63,21
    PUSHBUTTON      "4",IDC_BUTTON_HIT4,0,85,63,21
    PUSHBUTTON      "9",IDC_BUTTON_HIT9,1,189,62,21
    PUSHBUTTON      "Clear",IDC_CLEAR,238,37,45,34
    PUSHBUTTON      "Exit",IDC_EXIT,238,173,46,34
    PUSHBUTTON      "Revert",IDC_REVERT,238,71,45,33
    PUSHBUTTON      "Options",IDC_OPTIONS,238,136,45,36
    PUSHBUTTON      "Mouse",IDC_SWITCH,238,104,45,32
    PUSHBUTTON      "Recognition",IDC_RECOGNITION,238,0,45,37
END

这里,可以看到,上面对资源的描述包含了两个对话框,一个是IDD_ABOUTBOX,另外一个是IDD_FHRDEMO_FORM。第一个对话框的大小描述是(0,0,235,55),这四个的意思是: 第一个0是表示该控件的X的最左的坐标,第二个0是Y方向的最上面的坐标。 而235代表X方向的宽度,而55是代表Y方向的高度。接下来是STYLE: 紧跟后面的是该对话框的style。 再接下来是该对话框的font及其他一些信息。在BEGIN和END之间的是列举该对话框中所有的控件以及这些 都是一些什么控件及控件的尺寸和caption.

有了这些以后,我们就可以完全在这上面对它进行改动来完成对界面的风格和尺寸的一些改动。而无需再依靠向导了,并且这个比向导要灵活很多。当然,一开始可能会出现错误!!

二 利用rc文件添加自定义资源

这个就更加简单了,无需向导中那么的复杂步骤,且容易出现像我上面一篇文章说的那么多问题,如改名字不容易。这里,如果利用rc文件的话,就只需要一行就全部搞定。

MYSKIN22                MIAOWEI                 "res\\shapedemo.smf"

其中, MYSKIN22是新建资源的名字,在向导中是“新建”功能。MIAOWEI是资源名字,这个在向导中有个默认名字,有点搞的。而最后面的就不用说了,是该资源的路径。一般放在res文件夹下。我们只要在res文件夹中放入这个资源就可以了。这时,保存rc文件,然后重新在资源视图中去看看,可以发现,我们已经完成了向导中需要一系列操作的工作了。

好了,又要下班了,就算结束吧。

老样子,有问题,欢迎讨论。

转载于:https://www.cnblogs.com/techstone/archive/2012/06/15/2661230.html

巧用VC工程下的rc文件相关推荐

  1. VC工程中的.rc文件和.rc2文件的区别

    rc和rc2都是资源文件,包含了应用程序中用到的所有的资源. 两者不同在于:rc文件中的资源可以直接在VC集成环境中以可视化的方法进行编辑和修改; 而rc2中的资源不能在VC的集成环境下直接进行编辑和 ...

  2. vc工程下的.ncb文件是什么

    ncb 无编译浏览文件(no compile browser), NCB为VC++自动创建的跟踪文件,NCB是"No Compile Browser"的缩写,其中存放了供Class ...

  3. vc 工程下的.ncb文件的作用

    NCB是"No Compile Browser"的缩写,其中存放了供ClassView.WizardBar和Component Gallery使用的信息,由VC开发环境自动生成,工 ...

  4. vc工程下的文件后缀解析

    http://www.vcerror.com ·  .sln:VS.NET方案文件.其中包含了项目中所有的工程文件信息(如项目列表.构建配置等),以及通过属性窗口访问全局构建设置. 它是一个文本文件, ...

  5. AS工程下gradle各文件(gradle.propertie等)与gradle配置(缓存等)讲述

    一. gradle 缓存目录配置 首先了解对于gradle工具配置gradle 缓存路径,就是gradle wrapper各个版本的jar 存储路径和下载的各工程的gradle依赖存储路径 1.直接到 ...

  6. android启动过程之init.rc文件浅析

    1.  init.rc文件结构 文件位置: init.c  : /system/core/init init.rc  : /system/core/rootdir 首先init.rc文件是以模块为单位 ...

  7. 使用python脚本批量修改vc工程文件

    作者:朱金灿 来源:clever101的专栏 为什么大多数人学不会人工智能编程?>>> 问题描述    vc工程文件中的很多属性设置,比如输出目录.中间目录和输出文件名等等.使用vs ...

  8. Visual Studio 2010工程目录下的ipch文件夹和.sdf文件

    使用VS2010建立C++解决方案时,会生成SolutionName.sdf和一个叫做ipch的文件夹,这两个文件再加上*.pch等文件使得工程变得非常的庞大,一个简单的程序都会占用几十M的硬盘容量, ...

  9. VS工程目录下的ipch文件夹和.sdf文件

    Visual Studio 2010工程目录下的ipch文件夹和.sdf文件 - web8 - 博客园 http://www.cnblogs.com/web100/archive/2012/12/21 ...

最新文章

  1. 区块链人才月均薪酬1.6万元?
  2. 005-OSI七层模型IP地址
  3. 查询qt中的数据_EXCEL在多表中查询数据(函数中引用工作表的办法)
  4. error when defining a rule - SAP loyalty management的积分定义规则
  5. jenkins war包_Jenkins的安装和部署(jenkins教程)
  6. css鼠标移入线条延中心伸长,css动画效果:鼠标移上去底部线条从中间往两边延伸 - 子成君-分享出去,快乐加倍!-旧版已停更...
  7. 源码阅读 AtomicInteger
  8. 我是如何拿到百度计算机视觉暑期实习offer的?百度面经(成功上岸!已拿offer)
  9. 在git中取消删除已删除的文件
  10. 铁子们,2019博客之星投票活动开始了!帮我投个票呗
  11. 如何在Mac系统中修改设备名称
  12. Python读书笔记
  13. 评估基于功能磁共振成像的脑图谱
  14. 抖音直播Web端框架及消息处理流程分析(新鲜出炉)
  15. EGo1下板_简单秒表
  16. Pytorch环境搭建
  17. 凤凰牌老熊对支付的系统讲解
  18. zz from 古文中惊艳的句子
  19. VMware精简系统Win系列|体积更小更稳定
  20. 【算法】958- 动图演示:彻底理解红黑树?

热门文章

  1. linux-shell命令之file【辨识文件类型】
  2. LWIP之IP层实现(转载)
  3. video thumbnails
  4. Linux维护笔记四
  5. 透过性别看世界_透过树林看森林
  6. R统计工具:正态性检验
  7. 房贷利率不断上涨,贷款买房如何才能节省利息?
  8. 多媒体表示、描述、编码以及通信的相关规定和标准课程总结
  9. 数字图像处理技术详解程序_大学专业详解系列135——数字媒体技术(工学学士)...
  10. 红外传感器型号和参数_红外传感器参数|热释电红外传感器参数