各位VB高手,你一定也常常因苦于无法组织自己程序中大量的picture,而头痛不已,那就让小生为各位介绍一下VB编程的好帮手--资源文件。
所谓资源文件,就是指将在程序运行时用到的资源集中在一起的一个文件。一个资源文件可以包括文字(TEXT)、位图(BITMAP)。图标(ICON)等。并且在程序中调用时不用指明路径,这就简化了程序的编写并减少了发生错误的可能。现在我就以一个小程序为例讲述资源文件的一些使用方法。
这个工程运行后,当点击【未来】按钮时中间图像将依次变换为夏、秋、冬、春……点击【从前】按钮则以相反顺序转动图片(源程序附后)。
首先建立春、夏、秋、冬四幅位图,均以.BMP格式保存在C:/TEST/下。然后打开记事本编写资源文件,
内容如下:
100 bitmap spring.bmp
200 bitmap summer.bmp
300 bitmap autumn.bmp
400 bitmap winter.bmp
其中数字表示此项的ID号码,此号码很重要,它直接影响调用!BITMAP表示以位图方式保存而最后的部分为文件名。将此文件保存为TEST.RC。
接下来编译此资源文件。在C:/Visual Basic/Wizards目录下找到RC.EXE文件。在MS-DOS方式下键人C:/rc /r c:/test.test.rc(键入rc /?将会得到帮助),在编译成功后在C:/TEST/中将发现增加了一个名为TEST.RES的文件。
完成了上面的工作,接下来就可以编写工程了。首先建立一个image控件img和两个Command控件cmdc、cmdw。然后建立一个时钟控件,设其Interval属性为1000。最后在[通用]中声明一个名为iid的整形变量:
Dim iid As Integer
并初始化img和iid:
img.Picture=LoadResPicture(100,vbResBitmap)
iid=100
其中LoadResPicture(id,model)为从资源文件中调用图像的函数,100表示ID号为100的项,vbResBitmap为一常量,值为0,表示以位图方式打开。然后在两个Command控件中加入源程序代码。
最后在工程资源管理器中用鼠标右键单击选择【添加】-->【添加文件】,加入TEST.RES。
至此工程可谓大功告成,按F5运行一下,希望你会喜欢。还有一点要强调的是一个工程只能有一个工程文件!附源程序:
Option Explicit
Dim iid As Integer
Private Sub comc_Click()
iid = iid - 100
If iid < 100 Then iid = 400
img.Picture = LoadRespicture(iid.vbResBitmap)
End If
End Sub
Private Sub comw_Click()
iid = 100 + iid
If iid > 400 Then iid = 100
img.Picture = LoadResPicture(iid,vbResBitmap)
End If
End Sub
Private Sub Form_Load()
img.Picture = LoadResPicture(10O,vbResBitmap)
iid = 100
End Sub
Private Sub Timer1_Timer()
iid = 100 + iid
If iid > 400 Then iid = 100
img.Picture = LoadResPicture(iid,vbResBitmap)
End If
End Sub
本文来自编程入门网:http://www.bianceng.cn/Programming/vb/201003/15875.htm
如何在VB6.0中创建和使用文本资源文件
不少网友问及如何在VB中建立和使用文本资源文件。我想这也是很多VB初学者迫切想掌握的技巧。为此,将回答网友的信件整理了一下,形成此文,希望对大家有些帮助。
一.文本资源文件的建立
第一步:启动资源编辑器
如果VB资源编辑器没有被加载,请单击"外接程序",选取"外接管理器"启动外接管理器,然后选中"VB6 资源编辑器",在左下方的"加载行为"中的"加载/卸载"前打钩,点击"确定"退出外接管理器。此时,可以在工具条中看到资源编辑器的绿色图标,单击它就可以启动VB资源编辑器了。
第二步:
在VB资源编辑器窗口的工具栏中央,有一个有"abc"字样的图标,点击它,弹出编辑字符串表,进入字符串编辑状态。在这里的编辑状态有点特殊,没有见到常见的文本编辑器所见到的输入光标,不过已经可以输入了,输完一行按回车,进入下一行的编辑,其中标识符是程序自动给出的。编辑完毕请单击窗体右上角的关闭按钮,这时可以看到VB资源编辑器目录树里多出了"abc字符串表格"字样,它就是刚才输入的东东了,如果需要修改双击它就行。
保存资源文件,退出资源编辑器。资源文件已经自动添加在"相关文档"里,当前的工程可以使用它了。
(技巧:任何时候都可以对已经建立的资源文件进行修改。方法是在"相关文档"中双击以.res为后缀名的资源文件。)
二.资源文件的使用
VB提供了若干条读取资源文件的函数,这里针对本文主题只说明一下其中的一条:LoadResString(index)。这条函数很简单,使用时只需填写正确的索引号即可读出文本资源文件中的内容,比如:MyStr=LoadResString(101),此句读出的是资源文件中的第一条文本内容。关于资源文件中的索引号,总是从101开始的,这一点一定要注意。
下面我们从刚才建立的资源文件中读取所有的文本条目并将文本输出在窗体上:
Dim Tmpstr As String, i As Integer
For i = 101 To 104 '假设有五条记录
Tmpstr = LoadResString(i)
Print Tmpstr
Next
这仅仅是一个例子,你可以根据自己的需要灵活地对文本资源文件进行操作,——倘若如此,本文的目的就达到了!
--------------------------------------------------------------------------------
一、如何制作资源文件
VB所支持的资源文件必须以.res为扩展名,否则VB将无法正确识别。只要在项目文件中加入.res文件,就可以在程序中调用.res文件中的资源了。在生成EXE文件时,.res文件所包含的资源也会自动包含于其中。
制作.res文件,一种方法是使用VC++、Delphi等软件的资源编辑工具,它们可以直接编辑.res文件。不使用C++或其它工具的VB用户也可以采用另一种办法:先建立脚本文件.rc,然后用rc.exe编译成.res。VB 5.0以上的用户可以在Wizard子目录中找到rc.exe(如果使用VB4,可以在VB4的光盘上找到这个工具)。对于新手来说,手工建立.rc文件可能有些麻烦,可以考虑使用ResEdit。ResEdit这个资源编辑器并不包括在VB中,而应该从微软的站点上下载,地址是:http://premium.microsoft.com/vbasic/updates/ResEdit.asp。请注意,如果你以前没有访问过http://premium.microsoft.com/vbasic/,你需要先免费注册,注册过程中要输入VB的序列号(就是VB的About对话框中显示的那个序列号)。下载后,安装这个工具,你就可以在“外接程序管理器”找到它了。这个工具功能不是很强,但比手工编辑.rc文件简单多了。
二、在VB中调用资源
VB为支持.res资源增加了三个函数:LoadResPicture()、LoadResString()和LoadResData()。
LoadResPicture()函数用于调入位图、图标和光标资源,其作用非常类似LoadPicture()函数,不过LoadPicture是从磁盘文件中读取图形。LoadResPicture的格式为:
LoadResPicture(资源ID号,资源类型)
资源类型可为vbResBitmap、vbResIcon、vbResCursor,分别对应着位图、图标和光标三种资源。得到的图形可以直接赋与Picture属性,或在使用PaintPicture方法时使用。
LoadResString()函数用于调入字符串资源。字符串资源对于开发多语种软件比较有用。其使用格式为:
LoadResString(资源ID号)
LoadResData()函数可以调入各种资源。使用格式为:
LoadResData(资源ID号,资源类型)
这里资源类型取值的含义如下表所示:
1 光标 2 位图 3 图标
4 菜单 5 对话框 6 字符串
7 字体目录 8 字体 9 加速键
10 用户定义资源 12 设备无关光标 14 设备无关图标
该函数以Byte数组形式返回指定资源。VB以设计窗体快捷为其特色,故一般很少使用菜单、对话框和加速键资源。在VB中一般不使用资源文件的办法来设置EXE文件的版本信息,而应该在项目选项对话框中设置版本信息。LoadResData()函数最主要是用于用户定义资源。用户定义资源可以是GIF文件、文本文件或其他有用的数据,其使用起来相当灵活,在后面 “如何显示资源中的GIF文件”部分我们将展示这一点。
下面,我们先给出一个完整的示例来展现如何进行资源文件的编程。
首先,建立如下资源描述文件(*.rc),然后编译成RES文件,并加入项目文件。该资源文件中包括八个图标。
201 ICON "MOON01.ICO"
202 ICON "MOON02.ICO"
203 ICON "MOON03.ICO"
204 ICON "MOON04.ICO"
205 ICON "MOON05.ICO"
206 ICON "MOON06.ICO"
207 ICON "MOON07.ICO"
208 ICON "MOON08.ICO"
然后在窗体上加上一个Timer和Image,设置Timer的Enable属性为True,Interval属性为1000。在代码输入窗口加入如下的程序:
Option Explicit
Dim Which As Integer '动画显示的图标号
Private Sub Form_Load()
Which = 201
End Sub
Private Sub Timer1_Timer()
Image1.Picture = LoadResPicture(Which, vbResIcon)
If Which = 208 Then
Which = 201 '循环显示
Else
Which = Which + 1
End If
End Sub End Sub
该示例运行时连续显示图标资源以实现动画效果。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/penguinMII/archive/2005/03/18/322798.aspx