巧用VC工程下的rc文件

巧用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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/260724.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯 参考题目 黄金队列(水题)

黄金分割数0.618与美学有重要的关系。舞台上报幕员所站的位置大约就是舞台宽度的0.618处,墙上的画像一般也挂在房间高度的0.618处,甚至股票的波动据说也能找到0.618的影子.... 黄金分割数是个无理数,也就是无法表示为两个整数的比值。0.618只…

QC4+充电协议_一文看懂各家充电协议!总算彻底理清了

五一小长假马上就要到了,虽说今年的五一小长假是一个长达5天的“Plus”版小长假,但是受到疫情的影响,大多数人还是选择了在家中度过这个假期。既然说到了宅在家里度过这个假期,那么很多人都会选择让手机来陪伴自己度过。虽然最近几…

vi编辑器选项

Vi编辑器有一些选项设置可以帮助人们更好的使用。 在vi中选项分为两种: 1、 开关选项,如果要打开这类选项就使用ex命令——:set 选项;如果要关闭这类选项就是用ex命令——:set no选项(注意no和选项之间没有空格&…

javascript作用域容易记错的两个地方

1.function fun() { var a"rxm"; b"cwr"; } alert(a);//错误,a局部变量 alert(b); //"cwr",b全局变量。 2. var a"rxm"; function fun() { alert(a);var a"123"; alert(a); }fun();alert(a); 输出结果&#xff1…

第4章 Python 数字图像处理(DIP) - 频率域滤波6 - 二维DFT和IDFT的一些性质 - 平移和旋转、周期性、对称性

目录二维DFT和IDFT的一些性质空间间隔和频率间隔的关系平移和旋转周期性对称性二维DFT和IDFT的一些性质 空间间隔和频率间隔的关系 Δu1MΔT(4.69)\Delta u \frac{1}{M \Delta T} \tag{4.69}ΔuMΔT1​(4.69) Δv1NΔZ(4.70)\Delta v \frac{1}{N \Delta Z} \tag{4.70}ΔvNΔ…

类图 示例

神州六号飞船是神州飞船系统的一种,它由轨道舱、返回舱、推进舱和逃逸求生塔等组成;航天员可以在返回舱内驾驶飞船,轨道舱由是航天员工作和休息的场所。在紧急的情况下,可以利用逃逸求生塔逃生。在飞船两侧有多个太阳能电池翼&…

bat 命令返回结果_bat教程[284] unzip解压

古树屋Click to follow us(1)unzip命令的简介C:\Users\86137\Desktop>unzip -hUnZip 6.00 of 20 April 2009, by Info-ZIP. Maintained by C. Spieler. Sendbug reports using http://www.info-zip.org/zip-bug.html; see README for details.Usage: unzip [-Z] [-opts[mo…

K/3 MRP运算数据不准的原因及解决方案

系统MRP计算的结果不正确, 经过分析系统的数据,把MRP计算不正确原因整理如下:1.系统中存在大量的生产任务单没有完全领料,但被结案,造成部份领料单窜单领料,最终引起已分配量不正确2.系统中存在大量的手工录入的生产领料单3.存在部…

解压版本的tomcat服务安装

以下适合各个版本的tomcat(注意启动时8080端口要确保未被占用) 今天搭一个Tomcat服务器,为了方便决定将解压版(非windows的安装方式)的tomcat添加为一个windows服务。 环境: JDK 1.5.0_06 Tomcat-5.5.20 Windows2003 瑞…

Framework7:不会Objective-C,也能开发iOS7应用

摘要:Framework7是一款开源的轻量级HTML框架,用来创建混合或有着iOS7原生体验的Web应用。其包含HTML布局、所有基础界面、动画效果、视图以及简单的自定义样式,让你无需修炼Objective-C语言,就可以构建自己的iOS7应用。 Framework…

第4章 Python 数字图像处理(DIP) - 频率域滤波7 - 二维DFT和IDFT的一些性质 - 傅里叶频谱和相角

目录二维DFT和IDFT的一些性质傅里叶频谱和相角二维DFT和IDFT的一些性质 傅里叶频谱和相角 F(u,v)R(u,v)jI(u,v)∣F(u,v)∣ejϕ(u,v)(4.86)F(u, v) R(u, v) jI(u, v) |F(u, v)|e^{j\phi(u,v)} \tag{4.86}F(u,v)R(u,v)jI(u,v)∣F(u,v)∣ejϕ(u,v)(4.86) 幅度,称为…

jquery 判断是否有类名_Day037-JS、jQuery

第73次(JavaScript)学习主题:JavaScript学习目标:1 掌握js的表单验证2 熟练敲出制作购物车代码,尽量不要看老师的代码1. 表单验证A(1) 如何可以产生一个4位的随机数验证码Math.floor(Math.random()*90001000)(2) 如何控制表单是否提交的通过设置form表单…

csc.exe的环境变量设置

默认情况下,这个路径是不在 Path 环境变量中的。你在命令行下直接输入 csc,windows不会到上面那个路径中去找这个程序。所以也就提示找不到文件了。 设置方法: 1) 在“我的电脑”上点击右键,现在“属性”; 2) 在弹出的…

如何分析解决Android ANR

[java] view plaincopy print?来自: http://blog.csdn.net/tjy1985/article/details/6777346 http://blog.csdn.net/tjy1985/article/details/6777355 http://blog.csdn.net/tjy1985/article/details/6777983 http://www.eoeandroid.com/forum.php?modviewthr…

第4章 Python 数字图像处理(DIP) - 频率域滤波8 - 二维DFT和IDFT的一些性质 - 二维离散卷积定理

目录二维DFT和IDFT的一些性质二维离散卷积定理二维离散傅里叶变换性质的小结二维DFT和IDFT的一些性质 二维离散卷积定理 二维循环卷积表达式: (f⋆h)(x,y)∑m0M−1∑n0N−1f(m,n)h(x−m,y−n)(4.94)(f \star h)(x, y) \sum_{m0}^{M-1} \sum_{n0}^{N-1} f(m,n)h(x…

jmeter中重定向多个正则表达式_2020年jmeter技术实战续集,最新技术全栈,值得收藏

在上一篇:主要介绍线程组、HTTP请求默认值、用户定义的变量、固定定时器的应用场景及实战。以下主要介绍正则表达式提取器、调式取样器(Debug Sampler)、响应断言、HTTP信息头管理器的应用场景及实战。一、正则表达式提取器1、使用场景从请求的响应结果中取到需要的…

[置顶] 均衡音效

[置顶] 均衡音效 1均衡的作用 均衡器是一种可以分别调节各种频率成分电信号放大量的电子设备,通过对各种不同频率的电信号的调节来补偿扬声器和声场的缺陷,补偿和修饰各种声源及其它特殊作用。具体来说,它的作用如下: &#xff08…

html5之web worker

Web Worker 在本文中 与 Web Worker 进行双向通信WindowTimers在 IE10 Platform Preview 4 中对 Web Worker 的更新API 参考示例和教程有关 Internet Explorer 的 Test Drive 演示IEBlog 文章规范相关主题Internet Explorer 10 和使用 JavaScript 的 Windows 应用商店应用引入了…

第4章 Python 数字图像处理(DIP) - 频率域滤波9 - 频率域滤波基础、频率域的滤波过程、低通、高通

目录频率域滤波基础频率域的其他特性频率域滤波基础知识频率域滤波步骤小结空间域和频率域滤波之间的对应关系频率域滤波基础 频率域的其他特性 频率域中的滤波过程如下: 首先修改傅里叶变换以在到特定目的然后计算IDFT,返回到空间域 # 频率域中的其…

C# :试玩EventLog

1. 专门创建Source的Log   创建了Source,log显示在 Event viewer/Applications and Services logs/ 自定义Source 中,待遇比较高,专门显示的。 创建Source需要管理员身份,否则Crash。 如果已经打开了 Computer Management,请关闭…