Option Explicit Const RES_COUNT As Integer = 2 '资源文件个数 这里为了 演示只有2个资源文件 Dim m_strResString(RES_COUNT - 1) As String '资源字符串缓冲区 Private Sub LoadRes() Dim strLang As String Dim nBase As Integer ' 资源文件索引的基数 Dim lngResCount As Long Dim i As Integer '...读取ini文件 If strLang = "jan" Then nBase = 1000 '简体重 1000开始 Else nBase = 2000 '繁体从2000开始 End If For i = nBase To nBase + RES_COUNT - 1 m_strResString(i - nBase) = LoadResString(i) Next '每个控件的tag属性设置(设计的时候设置)的是 资源文件的索引 譬如这里Command1.Tag=0 Command1.Caption = m_strResString(CLng(Command1.Tag)) Command2.Caption = m_strResString(CLng(Command2.Tag)) '.... End Sub
用以从资源 (.res) 文件装载若干可能类型的数据,并返回一个 Byte 数组。
LoadResData(index, format)LoadResPicture 函数
用以从资源 (.res) 文件装载位图、图标或光标。
语法
LoadResPicture(index, format)LoadResString 函数
用以从资源 (.res) 文件装载字符串。
语法
LoadResString(index)
以上是从资源文件中读取资源的例子,VB中在一个工程里只能加入一个资源文件。资源文件是随程序编译的,编译后动态地从磁盘的.res文件中读好象是不行吧。你可以通过资源文件中的ID来加以区分不同的语种,如简体ID从0001-1000,繁体从1001到2000,这样可以区分开吧。对于这个问题在MSDN中有着比较详细的说明,你可以看一下。
LoadResString 函数
用以从资源 (.res) 文件装载字符串。
语法
LoadResString(index)
首先你把你所有的资源放到一个资源文件里使用不同的ID号(比如:简体从1000开始编号,繁体从5000开始编号。);
然后在使用的过程中根据你INI文件中的值加载不同的资源就OK了(比如:定义一个全局变量ResIndex,在程序启动时,判断INI文件中LANGUAGE的值,当为Jian时,ResIndex=0,当为Fan时,ResIndex=4000,在你使用的时候就变成如下样子:LoadResString(index+ResIndex),这样就可以很灵活地控制了。)。
LoadResData 函数 用以从资源 (.res) 文件装载若干可能类型的数据,并返回一个 Byte 数组。
LoadResString 函数 用以从资源 (.res) 文件装载字符串。
只能这样做
Const RES_COUNT As Integer = 2 '资源文件个数 这里为了 演示只有2个资源文件
Dim m_strResString(RES_COUNT - 1) As String '资源字符串缓冲区
Private Sub LoadRes()
Dim strLang As String
Dim nBase As Integer ' 资源文件索引的基数
Dim lngResCount As Long
Dim i As Integer
'...读取ini文件
If strLang = "jan" Then
nBase = 1000 '简体重 1000开始
Else
nBase = 2000 '繁体从2000开始
End If
For i = nBase To nBase + RES_COUNT - 1
m_strResString(i - nBase) = LoadResString(i)
Next
'每个控件的tag属性设置(设计的时候设置)的是 资源文件的索引 譬如这里Command1.Tag=0
Command1.Caption = m_strResString(CLng(Command1.Tag))
Command2.Caption = m_strResString(CLng(Command2.Tag))
'....
End Sub