VB使用RES资源文件技巧

前端之家收集整理的这篇文章主要介绍了VB使用RES资源文件技巧前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本文介绍了 Visual Basic 中资源文件的多种使用技巧:①开发中英(简、繁)双版本的技巧;②实现“绿色”软件;③直接播放声音文件;④保存各类图标、光标图片等等。



--------------------------------------------------------------------------------

在 Visual Basic 中资源文件的多种使用技巧


一、 开发中英(简、繁)双版本
现在比较流行的软件都会有中文版、英文版、繁体版等等多个版本,并可以根据系统的语言自动显示相适应的版本,那么这个功能在 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,则显示英文。
二、 实现“绿色”软件
现在非常流行“绿色”软件,不需要什么安装程序只要一个 EXE 文件就可以运行程序
了,而在 VB 的编程中有许多地方需要调用第三方的控件(很难用 API 函数搞定所有的功能),这就需要制做一个安装程序,把所需要的控件、DLL 文件或其他文件打包进去了,那么在 VB 中怎么用变通的方法实现“绿色”软件呢,请看:
示例:
1、主程序.EXE
用 VB6.0 编写的程序,调用了 Winsock 控件,如果在没有安装 VB5.0、6.0 的机器上运行则会出现错误,导致程序运行失败,这时如果按一般的方法,只有把这个程序用 VB5.0、6.0 的安装程序进行打包,不然只有用用2的方法解决了。
2、注册程序.EXE
用 VB6.0 编写的程序,使用资源文件方法,把 Winsock 控件封装到本程序中,在运行主程序.EXE之前,先运行本程序,通过 API 函数 GetSystemDirectory 取得系统的 WinddowsSystem 的目录,然后把 Winsock 控件复制到该目录下,并用 Shell 来完成控件的注册
⑴启动 VB6.0,在“外接程序→外接程序管理器”中加载“Visual Basic 6 资源编辑器”
⑵在 VB 资源编辑器窗口中,点击“添加自定义资料”,增加 Winsock 控件(C:WinddowsSystemMswinsck.ocx),再双击刚刚创建的自定义资源,弹出”编辑属性”窗口,定义如下:
类型: “OCX”
标识号: 101
语言: 中文(中国)
⑶保存资源文件,写如下代码
Option Explicit
Private Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String,ByVal nSize As Long) As Long
Const MAX_PATH = 260 注释:定义足够长的字符串
Private Sub Form_Load()
Dim TempFile() As Byte
Dim FileNum As Integer
Dim TempDir As String
TempDir = GetWinSysDir 注释:自定义函数取得系统的 WinddowsSystem 的目录
TempFile = LoadResData(101,"OCX") 注释:用以从资源 (.res) 文件装载若干可能类型的数据,并返回一个 Byte 数组
FileNum = FreeFile
Open TempDir & "Mswinsck.ocx" For Binary Access Write As #FileNum 注释:新建文件(把 Winsock 控件复制到指定目录下)
Put #FileNum,TempFile
Close #FileNum

注释:Shell "regsvr32 " & TempDir & "Mswinsck.ocx ",vbNormalFocus 注释:注册控件,有弹出对话框
Shell "regsvr32 " & TempDir & "Mswinsck.ocx /s",无弹出对话框

MsgBox "注册成功,现在本程序可正常运行了!!",vbOKOnly,"注册控件"

Unload Me
End Sub


Public Function GetWinSysDir() 注释:定义读取WinddowsSystem 的所在目录的函数 Dim S As String,Length As Long S = String(MAX_PATH,0) 注释:赋值 Length = GetSystemDirectory(S,MAX_PATH) 注释:S为取得目录,MAX_PATH 为长度 S = Left(S,InStr(S,Chr(0)) - 1) 注释:去掉多余的空格 GetWinSysDir = S End Function 注释:补充:S 和 MAX_PATH 的值是可以随便赋的, 注释:如: Dim S As String * 20 注释: Length = GetSystemDirectory(S,20) 3、补充说明 在用 VB6.0 保存上述两个程序后,请再使用 VB5.0 重新打开这两个程序,并编译为主程序.EXE、注册文件.EXE。(用 VB5.0 编译的程序,在 Win98、2000 下不需要任何 DLL 文件) 程序运行 4、程序运行 将主程序.EXE、注册文件.EXE两个文件,复制到任意机器上,先运行注册文件.EXE注册第三方的控件,再运行主程序.EXE,就不会有任何的错误了,一个变通的“绿色”软件就完成了。 三、 直接播放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) 注释:加载光标 五、到此为此资源文件的多种使用技巧全部介绍完毕,希望这些技巧对大家的编程有帮助,上述程序全部在 Win98、VB5.0或6.0下运行通过

猜你在找的VB相关文章