资源文件(.RES)的应用
2016-09
睿丰德信息科技有限公司
资源档有什麽用处呢?最重要的有两个地方
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 可以是以下两种
- mem-option 可以是以下三种
- 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 定义资源类别
- load-option
- mem-option
Compiler的语法: rc /r [options] SourceFile(.RC) - /r 只Compiler .RC file , not linked to any executable. 可用rc /? 来查语法 EXAMPLE RC /r /fo TEST32.RES TEST.RC
- ---Project1
+-- 表单
--- 相关文件
|
------TEST32.RES
#define IDS_HELLO 1
#define IDS_GOODBYE 2
STRINGTABLE
BEGIN
IDS_HELLO, "Hello"
IDS_GOODBYE, "Goodbye"
3, "This is a Test"
END
STRINGTABLE
BEGIN
101, "您好"
102, "再见了"
103, "这是一个测试"
END
/////////////////////////////////////////////////
// Bitmap
////////////////////////////////////////////////
1 BITMAP "CLI.BMP"
101 BITMAP "CLI2.BMP"
BITMAP3 BITMAP "多多.BMP"
////////////////////////////////////////////////
// ICON
///////////////////////////////////////////////
1 ICON CLIENT.ICO
Option Explicit
Private Sub Command1_Click()
Call ShowRtn(0)
End Sub
Private 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 Sub
Private Sub Command2_Click()
Call ShowRtn(100)
End Sub
Private Sub Command3_Click()
Set Picture1 = LoadResPicture("BITMAP3", vbResBitmap)
End Sub