资源文件(.RES)的应用

资源档有什麽用处呢?最重要的有两个地方
1.国际发行:我们将Application中所有的文字从Resource用读取,那麽,只要更动
            Resource档的内容,就可以用不同语言的方式来显示。
2.管理资源:例如说,我们的AP中用了数百张的图片或声音,不用Resource档的话,
            在发行出去的AP中,就必需有数百个图形、声音档,那似乎不太好,使
            用Resource档,便可以将这些图形、声音放进一个.Res档。

使用RC.exe来Compiler我们所定义的Resource档, RC.EXE在vb5.0光碟中的/TOOLS/RESOURCE 

Resources 可分成两大部份:

- String resources (text strings such as "Hello World").
- Binary resources (icons, bitmaps, cursors, sounds, video等)


String Resources

语法:

STRINGTABLE [load-option] [mem-option]
BEGIN
stringID string
.
    .
    .
END

叁数说明 :
- load-option 可以是以下两种

OptionDescription
-----------------
PRELOADResource is loaded immediately.
LOADONCALL(Default) Resource is loaded when called.

- mem-option 可以是以下三种
OptionDescription
-----------------
FIXEDResource remains at a fixed memory location.
MOVEABLEResource can be moved if necessary in order to compact memory.
DISCARDABLEResource can be discarded if no longer needed.
- stringID  自行定义的integer,用来定义字串 resource.- string    我们定义的字串,字串前後要用双引号(")将之包围起来,字串长度不可超过255 bytes,而且字串要在同一行 BINARY RESOURCES
语法:nameID keyword [load-option] [mem-option] filename叁数:- nameID 定义一个於以下keyword类别中,一个唯一的名称或数字,即,有三个BITMAP类别的Resource,其nameID可以分别为1,2,3不重覆,而另有三个ICON的资源,其nameID亦可分别为1,2,3,不会和BITMAP的1,2,3相冲突。注:ICON类别的nameID不可以为0,0保留给 Visual Basic icon。nameID亦可以为字串
- keyword 定义资源类别
OptionDescription
-----------------
BITMAPDefines a bitmap (.BMP)
CURSORDefines a cursor (.CUR)
ICONDefines an icon (.ICO)
SOUNDDefines a wave file (.WAV)
VIDEODefines a video file (.AVI)

- load-option
OptionDescription
-----------------
PRELOADResource is loaded immediately.
LOADONCALL(Default) Resource is loaded when called.

- mem-option
OptionDescription
-----------------
FIXEDResource remains at a fixed memory location.
MOVEABLEResource can be moved if necessary in order to compact memory.
DISCARDABLEResource can be discarded if no longer needed.
default for binary resources is MOVEABLE. - filename 资源所在的档名
 
Compiler的语法:rc /r [options] SourceFile(.RC) - /r		只Compiler .RC file , not linked to any executable.可用rc /? 来查语法EXAMPLERC /r /fo TEST32.RES TEST.RC
上面的表格中是读取Test.RC的定义,而产生TEST32.RES,这个档便是我们程式设计中所需的资源档,而在vb5.0中如何来使用呢,在 "专案功能表 的 新增档案"中来选取该Resource file(.RES) ,之後在专案总管中,会出现
- ---Project1+-- 表单--- 相关文件|  ------TEST32.RES
那便可以使用 LoadResString LoadResPicture LoadResData来抓取相关的资料了 以下是Test.RC的内容,而BitMap, Icon写的档名,请自行更改成您对映的档案
#define IDS_HELLO    1
#define IDS_GOODBYE  2STRINGTABLE
BEGINIDS_HELLO,   "Hello"IDS_GOODBYE, "Goodbye"3,           "This is a Test"
END
STRINGTABLE
BEGIN101,        "您好"102,        "再见了"103,        "这是一个测试"
END/
// Bitmap 1          BITMAP "CLI.BMP"
101        BITMAP "CLI2.BMP"
BITMAP3    BITMAP "多多.BMP"// ICON
///
1          ICON   CLIENT.ICO
以下是在form中,需3个Command Button 3个Label 1个PictureBox 另需在 专案功能表 中选 新增档案 并进而选取Test32.Res
Option ExplicitPrivate Sub Command1_Click()
Call ShowRtn(0)
End SubPrivate Sub ShowRtn(ByVal i As Long)
Label1.Caption = LoadResString(i + 1)
Label2.Caption = LoadResString(i + 2)
Label3.Caption = LoadResString(i + 3)
Set Picture1 = LoadResPicture(i + 1, vbResBitmap)
End SubPrivate Sub Command2_Click()
Call ShowRtn(100)
End SubPrivate Sub Command3_Click()
Set Picture1 = LoadResPicture("BITMAP3", vbResBitmap)
End Sub

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

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

相关文章

Linux下Tomcat设置自动启动

在linux系统下,设置某个服务自启动的话,需要在/etc/rcX.d下挂载,还要在/etc/init.d/下写启动脚本的。 1、我们在/etc/init.d/下新建一个文件tomcat(需要在root权限下操作) vi /etc/init.d/tomcat#!/bin/sh # chkconfig…

Android插件化开发之动态加载的类型

https://segmentfault.com/a/1190000005113493 基本信息 Author:kaedea GitHub:android-dynamical-loading 现在网络上有许多关于动态加载的介绍的文章,谈及的关键词汇有动态加载、插件化、热部署、热修复等,对于一些刚接触这方…

c# 爬虫 -ChromeDriver+HtmlAgilityPack爬取比赛实时比分

背景最近NBA总决赛吸引了不少球迷,但是因为时差的关系,人家在比赛,我们在上班,有时候上班又不好意思光明正大的看比赛,那有什么办法 可以光明正大的看又不被发现呢。有,自己动手丰衣足食,Chrome…

Codevs2157 配对

题目描述 Description给出2个序列A{a[1],a[2],…,a[n]},B{b[1],b[2],…,b[n]},从A、B中各选出n个元素进行一一配对(可以不按照原来在序列中的顺序)&#xff0…

UITableView的优化原理

2019独角兽企业重金招聘Python工程师标准>>> 当我们下啦一个 UITableView时,如果没有做优化,只是简单的实现功能代码如下,这样当我们有上百条tableviewcell的时候,我们滑动的非常快时会非常费内存,当然苹果…

深入浅出Mybatis系列(一)---Mybatis入门[转]

最近两年 springmvc mybatis 的在这种搭配还是蛮火的,楼主我呢,也从来没真正去接触过mybatis, 趁近日得闲, 就去学习一下mybatis吧。 本次拟根据自己的学习进度,做一次关于mybatis 的一系列教程, 记录自己的学习历程&…

字符串之括号的有效性

题目: 给定一个字符串str,判断是不是整体有效的括号字符串 举例: str = "()" return true; stre = "()()" return true; str = "())" return false; str = "()a()" return false; 代码: package com.chenyu.string.cn;public class…

python为text添加滚动条_在Tkinter中向一组小部件添加滚动条

概述您只能将滚动条与一些小部件关联起来,根小部件和Frame不是那组小部件的一部分。最常见的解决方案是创建一个画布小部件,并将滚动条与该小部件关联起来。然后,将包含标签小部件的框架嵌入到画布中。确定框架的宽度/高度,并将其…

C# 图像模板匹配并标注

01—需求这个是粉丝在我的技术群提的一个需求1、 模板匹配 :功能:(1)在一张大图像中,选取一小块区域作为模板(2)可在大图像中匹配到模板图像和位置。模板匹配是图像处理中最基本、最常用的匹配方…

深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap[转]

上篇《深入浅出Mybatis系列(七)---mapper映射文件配置之insert、update、delete》介绍了insert、update、delete的用法,本篇将介绍select、resultMap的用法。select无疑是我们最常用,也是最复杂的,mybatis通过resultMa…

李洪强经典面试题146-网络

李洪强经典面试题146-网络 网络 http请求方式? 通常,HTTP的请求方式有3种,分别是:POST、GET、HEAD。POST和GET方法是用于数据发送的。 POST:它将要发送的数据单独放在一个流中进行发送,而不是附加在URL地址…

北大保送、硕博连读!《西游记》红孩儿扮演者现成中科院博士!

全世界只有3.14 % 的人关注了爆炸吧知识本文转自:募格学术86版《西游记》可以说是很多人的记忆,男女老幼几乎都看过这个版本,虽然已经过去三十多年,但如今依旧是经典无法超越之作。看过86版《西游记》的小伙伴应该都还记得里面牛魔…

Android插件化开发之运行未安装apk的activity

1、介绍 我们知道PathClassLoader是一个应用的默认加载器(而且他只能加载data/app/xxx.apk的文件),但是我们加载插件一般使用DexClassLoader加载器,所以这里就有问题了,其实如果对于开始的时候,每个人都会认为很简单,…

理解UI线程——SWT, Android, 和Swing的UI机理

2019独角兽企业重金招聘Python工程师标准>>> 在做GUI的时候, 无论是SWT, AWT, Swing 还是Android, 都需要面对UI线程的问题, UI线程往往会被单独的提出来单独对待, 试着问自己, 当GUI启动的时候, 后台会运行几个线程? 比如 1. SWT 从Main函数启动 2. Swing 从Ma…

python自动填写小程序表单_新年好!教大家用Python写一个自动回复拜年信息的小程序!...

原标题:新年好!教大家用Python写一个自动回复拜年信息的小程序!过年期间,想必大家都收到很多拜年信息吧!有没有也被拜年短信(大部分是群发)搞得很焦虑?不回复似乎显得很没有礼貌,一一回复又累心…

C#多线程开发-并发集合中的ConcurrentQueue

前言大家好,我是阿辉。上一篇博文简单介绍了C#中支持并发的数据字典,简单举例说明比较了常规集合与ConcurrentDictionary的读写速度。下来简单介绍其中一个线程安全队列ConcurrentQueue;ConcurrentQueue队列我们不陌生,在数据结构这门课中就有…

HDU 5141

这个题 LIS 并查集的思想 链式前向星 要求找s(i,j)使i j 能有最长的LIS 。。。 做法是枚举每一个j 即终点 算 起点 的可能 无力吐槽了 bc 的时候写错了一个地方 导致TLE 后来幡然醒悟了 改了就a了 不想说什么了 直接上代码 #include <cstdio> #include <…

MySQL存储过程相互调用

什么都不说了上代码&#xff1a; 方式一&#xff1a; 第一个存储过程&#xff1a;test1,参数如下&#xff1a;IN user_name VARCHAR(50),OUT uid bigint(20) BEGIN#Routine body goes here...DECLARE u_id BIGINT(20) DEFAULT 11;SELECT user_id INTO uid FROM tbl_useralias …

一个人动情之后的表现......

1 卖家能有什么坏心思呢&#xff08;via.城与橙与澄&#xff0c;侵删&#xff09;▼2 严重怀疑传了答案▼3 别说我还真没留意到&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼4 领导说“辛苦了”&#xff0c;你要怎么回答▼5 哦吼&#xff08;素材来源网络&#…