VB中使用资源的技巧.doc_第1页
VB中使用资源的技巧.doc_第2页
VB中使用资源的技巧.doc_第3页
VB中使用资源的技巧.doc_第4页
VB中使用资源的技巧.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VB中使用资源的技巧,将图片、文本等东西写进RES/(不是DLL),再直接调用默认分类 2010-01-30 20:16:46 阅读350 评论0 字号:大中小订阅 Visual Basic中使用资源的技巧,将图片、文本等东西写进RES/(不是DLL),再直接调用 读入的图形资源和使用LoadPicture读入的图象一样使用,省去了调用BitBlt等API函数的麻烦。这些图象资源也可以直接赋给与图象有关的属性,如Picture属性,而这是采用API方法比较难实现的。一、如何制作资源文件 VB所支持的资源文件必须以.res为扩展名,否则VB将无法正确识别。只要在项目文件中加入.res文件,就可以在程序中调用.res文件中的资源了。在生成EXE文件时,.res文件所包含的资源也会自动包含于其中。需要注意的是16位版本和32版本使用的资源文件是不同的,不能混用。 制作.res文件,一种方法是使用VC+、Delphi等软件的资源编辑工具,它们可以直接编辑.res文件。不使用C+或其它工具的VB用户也可以采用另一种办法:先建立脚本文件.rc,然后用rc.exe编译成.res。VB 5.0以上的用户可以在Wizard子目录中找到rc.exe(如果使用VB4,可以在VB4的光盘上找到这个工具)。对于新手来说,手工建立.rc文件可能有些麻烦,可以考虑使用ResEdit。ResEdit这个资源编辑器并不包括在VB中,而应该从微软的站点上下载,地址是:/vbasic/updates/ResEdit.asp。请注意,如果你以前没有访问过/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.ICO202 ICON MOON02.ICO203 ICON MOON03.ICO204 ICON MOON04.ICO205 ICON MOON05.ICO206 ICON MOON06.ICO207 ICON MOON07.ICO208 ICON MOON08.ICO 然后在窗体上加上一个Timer和Image,设置Timer的Enable属性为True,Interval属性为1000。在代码输入窗口加入如下的程序:Option ExplicitDim Which As Integer 动画显示的图标号Private Sub Form_Load()Which = 201End SubPrivate Sub Timer1_Timer()Image1.Picture = LoadResPicture(Which, vbResIcon)If Which = 208 ThenWhich = 201 循环显示ElseWhich = Which + 1End IfEnd Sub End Sub 该示例运行时连续显示图标资源以实现动画效果。三、如何显示资源中的GIF文件 VB 5.0的Picture Box可以显示GIF和JPEG图象,但是由于GIF资源不是Windows的标准资源,所以不能使用LoadResPicture的办法来调入GIF图象。如果要解决这个问题,需要先将GIF资源写到一个临时文件,然后用LoadPicture显示文件,最后再删除掉磁盘上的临时文件。我们假定资源文件如下:102 GIF about.gif 你可以用这样的语句来实现:SaveFileFromRes(102, GIF, C:/about.gif)Picture1.picture = LoadPicture(C:/about.gif)Kill C:/about.gif这里的C:/about.gif只是一个例子,在实际编程可以用Windows API的GetTempFileName来生成临时文件名(但GetTempFileName生成的临时文件扩展名为.tmp,需改为.gif)。这里的SaveFileFromRes函数来完成写临时文件的工作,具体代码如下:Public Function SaveFileFromRes(vntResourceID As Variant, sType As String, sFileName As String) As Boolean=函数:SaveFileFromRes 从http:/AskP下载 =目的: 从资源文件调入自定义资源,然后写入磁盘上的文件 返回值: 如果没有错误为True,否则为False 注意: sType 必须同资源文件的定义相同(包括大小写)! 假定sFilename是合法的,可写的 =Dim bytImage() As Byte Always store binary data in byte arrays!Dim iFileNum As Integer Free File HandleOn Error GoTo SaveFileFromRes_ErrSaveFileFromRes = TrueLoad Binary Data from Resource filebytImage = LoadResData(vntResourceID, sType)Get Free File HandleiFileNum = FreeFileOpen the file and save the dataOpen sFileName For Binary As iFileNumPut #iFileNum, , bytImageClose

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论