|

楼主 |
发表于 2007-12-25 14:40:57
|
显示全部楼层
下面详细说明资源文件的使用方法
- LoadResData 返回一个Byte数组,用以从资源 (.res) 文件装载若干可能类型的数据。语法为:
- LoadResData(index, format)
- LoadResData 函数的语法包含下列部分:
- 部分 描述
- index 必需的。一个整数或字符串,它用来指定资源文件中数据的标识
- 符 (ID)。ID 标识为 1 的资源保留给应用程序的图标。
- Format 必需的。一个数值,它用来按照下列“设置值"中的描述,指定返
- 回数据的原始格式。该数值也可以是用户定义资源的字符串名。
- 设置值 用于 format 的设置值有:
- 设置值 描述
- 1 光标资源
- 2 位图资源
- 3 图标资源
- 4 菜单资源
- 5 对话框
- 6 字符串资源
- 7 字体目录资源
- 8 字体资源
- 9 加速键表
- 10 用户定义资源
- 12 群组光标
- 14 群组图标
- VB 中资源文件的使用技巧
- 一、开发中英(简、繁)双版本
- 现在比较流行的软件都会有中文版、英文版、繁体版等等多个版本,并可以根据系统的语言自动显示相适应的版本,那么这个功能在 VB 是如何实现得呢的:
- 1、 首先通过 API 函数GetSystemDefaultLCID 判断系统的语言
- Option Explicit
- Dim lang As String
- Private Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long
- Private Sub Form_Load()
- Dim LocaleID As Long
- LocaleID = GetSystemDefaultLCID
- Select Case LocaleID
- Case &H404
- MsgBox "当前系统为:中文繁体", , "语言"
- Case &H804
- MsgBox "当前系统为:中文简体", , "语言"
- lang = "1"
- Case &H409
- MsgBox "当前系统为:英文", , "语言"
- lang = "2"
- End Select
- End Sub
- 2、然后程序就可以加载保存在资源文件(这里我们就是使用的这种方法)、注册表、INI 文件、文本文件或其他文件中的各类字符串,以达到达到实现多种语言的目的。
- ⑴启动 VB6.0,在“外接程序→外接程序管理器”中加载“Visual Basic 6 资源编辑器”
- ⑵在 VB 资源编辑器窗口中,点击“编辑字符串表格”输入如下资料:
- 标识号 中文(中国)
- 101 例子
- 102 中文
- 103 英文
- 201 Ensample
- 202 Chinese
- 203 English
- ⑶保存资源文件,写如下代码:(自定义装载字符的函数 LoadString)
- Sub LoadString()
- Me.Caption = LoadResString(Int(lang & "01"))
- Command1(0).Caption = LoadResString(Int(lang & "02"))
- Command1(1).Caption = LoadResString(Int(lang & "03"))
- End Sub
- ⑷怎么样一个简单的中英双版本的程序就做出来了,如果把 lang 的值设置为 1,则显示中文,如果把 lang 的值设置为 2,则显示英文。
- ps:更简单实用的方法是:把不同语言文字放在同一个标识号ID对应的不同字符串表格中即可。VB 会自动实现多种语言转换!
- 二、 直接播放EXE文件中的声音文件
- 使用资源文件,可以直接在在EXE文件中播放声音文件(WAV文件),使程序显得更加专业。
- ⑴启动 VB6.0,在“外接程序→外接程序管理器”中加载“Visual Basic 6 资源编辑器”
- ⑵在 VB 资源编辑器窗口中,点击“添加自定义资料”,增加任意的 WAV 文件,再双击刚刚创建的自定义资源,弹出”编辑属性”窗口,定义如下:
- 类型: "WAVE"
- 标识号: 102
- 语言: 中文(中国)
- ⑶保存资源文件,写如下代码:
- Option Explicit
- Private Declare Function GetSystemDefaultLCID Lib "kernel32" () As Long
- Private Declare Function sndPlaySoundFromMemory Lib "winmm.dll" Alias "sndPlaySoundA" (lpszSoundName As Any, ByVal uFlags As Long) As Long
- Public Const SND_ASYNC = &H1&
- Public Const SND_MEMORY = &H4&
- Private Sub Command5_Click() 注释:播放 WAV 文件
- Dim bArr() As Byte
- bArr = LoadResData(102, "WAVE")
- sndPlaySoundFromMemory bArr(0), SND_ASYNC Or SND_MEMORY
- End Sub
- ⑷按 F5 运行本程序,点击 Command 按钮,就可以听到你选定的 WAV 文件的声音了。
- 三、 直接调用各类图标、光标图片
- 在一个程序中,我们可能需要调用多个图标、光标、图片文件,一般来说我们主要是使用 ImageList 控件,不过其时使用资源文件是最好的方法(可以少使用一个控件呀)。
- ⑴启动 VB6.0,在“外接程序→外接程序管理器”中加载“Visual Basic 6 资源编辑器”
- ⑵在 VB 资源编辑器窗口中,点击“添加光标”,“添加图标”,“添加位图”,装载所需要的文件。
- ⑶程序代码如下:
- Me.Icon = LoadResPicture(101, vbResIcon) 注释:加载图标
- Picture1.Picture = LoadResPicture(101, vbResBitmap) 注释:加载位图
- Command1.MouseIcon = LoadResPicture(101, vbResCursor) 注释:加载光标
复制代码
[ 本帖最后由 icecept 于 2009-1-11 21:08 编辑 ] |
评分
-
查看全部评分
|