例如:101 你好!(中文)
1101 你好!(英文)
2101 你好!(德文)INDEX =0 (中文)
INDEX =1 (英文)
INDEX =2 (德文)多语言版:
Text=Loadstr(Index*1000+101)
1101 你好!(英文)
2101 你好!(德文)INDEX =0 (中文)
INDEX =1 (英文)
INDEX =2 (德文)多语言版:
Text=Loadstr(Index*1000+101)
解决方案 »
- 关于用窗体的textbox读取某个excel表格中的文本值,请进!!
- Load完后,再UnLoad,怎么使控件数组的下标再从1开始?
- 一个sql server 的意外错误啊!!!!帮忙啊,给分(50)
- VB中如何把Excel的数据导入到SQL里面?
- vb实现导出数据到Excel,导出后如何利用Excle中的求和公司求某一列的值?(不循环记录集!)
- 这个代码有什么问题啊??
- 请lihonggen0接分!----图象处理。
- 100分:使用WebBrowser控件如何调用“查找(在当前页)”的功能?
- 关于捕获控件的问题
- 一些关于msflexgrid控件和数据库的小问题?
- 斑竹请看:能告诉我搜索服务器什么时候能不忙
- 从FTP服务器上下载文件
那么,资源文件是怎样产生的呢?要产生资源文件,首先需要撰写资源的原始文件(文件名.rc),再通过资源编译程序(rc.exe)编译成我们所需要的资源文件(文件名.res)。在我们安装vb时,资源编译程序默认是没有安装到硬盘上的,但你可以在vb安装盘的COMMON\TOOLS\VB\RESOURCE目录下找到它。将rc.exe和rcdll.dll(与rc.exe在光盘的同一目录下)文件一起复制到你的硬盘上后,你就可以使用资源编译程序了。它的用法是:rc 资源原始文件路径\资源原始文件名.res(注意:rc.exe是在dos模式下运行的。笔者建议将rc.exe文件拷贝到dos命令的默认目录下,而rcdll.dll拷贝到windows\sysem目录下)
资源原始文件撰写方法很简单,用windows自带的记事本就可以编写。它的基本语法是:
1、非文字资源:
语法: 资源名称 关键字 文件名称
其中,资源名称是你将资源写入资源文件后,资源在资源文件中的id号,这个id号必须是唯一的。关键字是写入资源的类型。非文字资源包括:BITMAP(位图)、CURSOR(光标)、ICON(图标)、WAVE(声音)、TEXTFILE(文本)。文件名称是你要写入的资源所在的路径和它的名称以及扩展名。
2、文字资源
语法: StringTable
Begin
编号1,“文字内容一”
编号2,“文字内容二”
…………………………
编号n,“文字内容n”
End
其中,StringTable是定义文字资源的关键字。编号是文字资源在资源文件中的唯一id号,且必须是数字。
下面,我们用一个实际的例子来说明怎样撰写资源原始文件(.rc),以及怎样将它编译成需要的资源文件(.res)。首先,我们在D盘新建一个文件夹,取名为Resource。将一副位图(.bmp)、一个图标(.ico)、一个声音文件(.wav)、一个文本文件(.txt)装入文件夹,分别命名为Mybmp、Myico、Mywav、Mytxt。接着打开记事本,写入如下语句:
MyPicture BITMAP d:\Resource\Mybmp.bmp
MyImage ICON d:\Resource\Myico.ico
MySound WAVE d:\Resource\Mywav.wav
MyText TEXTFILE d:\Resource\Mytxt.txt
STRINGTABLE
BEGIN
1,"这是使用资源文件的文字内容一!"
2,"这是使用资源文件的文字内容二!"
END
将文件保存,在保存对话框的保存类型中选择所有文件,文件名一栏中输入“MyResource.rc”,单击保存(保存在d:\Resource目录下)。在dos提示符下输入:rc d:\Resource\MyResource.rc,回车(注意:如果你的rc.exe文件不是拷贝在默认的dos命令目下,则需要先使用path命令指定路径。也可以在“开始菜单/运行”中输入相同命令,但应注意在rc前加上rc所在的路径)。如果没有错误的话,在D:\Resource目下将产生一个MyResource.res文件,这就是我们所需要的资源文件。如果有错误产生,你可以根据错误类型的提示作出相应的修改,也可以用rc/?命令来寻求帮助。
资源文件生成后,我们就可以在vb程序中使用它了。在使用资源文件之前,你必须先将它添加进你的工程。这里有两种方法,你可以通过菜单中的“工程/添加文件”,选择需要的资源文件加入,也可以右键单击右方的“工程资源管理器”中要添加资源文件的工程,选择“添加文件”,再选择所需的资源文件即可(我们在这里添加的是d:\Resource\MyResource.res)。这里要注意的是,一个工程只能添加一个资源文件。所以,在撰写资源原始文件之前,对程序所需要用到的资源做一个整体的规划,不失为一个明智之举。
添加了资源文件后,我们怎样在程序中引用它呢?这里,vb为我们提供了几个函数:LoadResString(文字载入函数)、LoadResPicture(图片载入函数)、LoadResData(数据载入函数)。它们的具体用法是:
语法:LoadResString(ID as Long)
LoadResPicture(ID,ResType as Integer)
LoadRseData(ID,Type)
其中,LoadResString中的id是文字内容在资源文件中的编号。LoadResPicture中的id是图片在资源文件中的名称,ResType是图片类型,它包括VbResBitmap(位图文件)、VbResIcon(图标文件)、VbResCursor(光标文件)三种。LoadResData中的id是声音文件或文本文件在资源文件中的名称,Type是文件类型(Wave对应声音文件,TextFile对应文本文件)。下面,我们通过一个具体的例子来介绍在程序中引用资源文件。
新建一个工程,在窗体中放入一个PictureBox控件、一个Image控件、两个TextBox控件、五个CommadnButton控件,分别命名为PicRes、IcoRes、TxtRes、TxtFileRes以及Cmd1~5。
添加一个标准模块,写入以下声明:
Public Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" ( lpszSoundName As Any, ByVal uFlags As Long) As Long
Public Const SND_MEMORY = &H4 '该常数表示播放存储器中的声音
以上api函数的作用是用来播放声音文件。注意,这里将标准SndPlaySound函数中的参数“ByVal lpszSoundName As String”改成了“lpszSoundName As Any”,是为了接收资源文件中的声音资源转化成的byte数组。(有关api函数的问题请参阅相关资料)
在窗体的代码模式下写入如下代码:Private Sub cmd1_Click()
'将资源文件中的位图加载进picturebox控件
PicRes.Picture = LoadResPicture("mypicture", vbResBitmap)
End SubPrivate Sub cmd2_Click()
'将资源文件中的图标加载进Image控件
IcoRes.Picture = LoadResPicture("myimage", vbResIcon)
End SubPrivate Sub cmd3_Click()
'将资源文件中的文字资源1加载进textbox控件后换行,再将文字资源2载入
TxtRes.Text = LoadResString(1) & Chr(13) & Chr(10) & LoadResString(2)
End SubPrivate Sub cmd4_Click()
Dim Txt() As Byte
'声明一个byte数组,用来接收资源文件中的文本文件
Txt = LoadResData("mytext", "textfile")
'用strconv函数将byte数组转化为文本后,赋予textbox控件
TxtFileRes.Text = StrConv(Txt, vbUnicode)
End SubPrivate Sub cmd5_Click()
Dim Wav() As Byte
'声明一个byte数组,用来接受资源文件中的声音文件
Wav = LoadResData("mysound", "wave")
'用sndplaysound函数播放声音文件
sndPlaySound Wav(0), SND_MEMORY
End Sub
怎么样,经过上面的例子,你是否已经掌握了资源文件的使用方法。有兴趣的朋友还可以参考一下资源文件的相关资料,看看它的其他用法,例如使用转译字符,这里就不详加介绍了。灵活的使用资源文件,能大大减少我们在开发双语软件以及对软件进行升级时书写代码的时间,使得我们开发出的软件显得更加标准、更加专业!以上程序在win2000下,vb6.0环境中运行通过。