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