VB中资源文件的使用方法.docx

上传人:b****8 文档编号:9095849 上传时间:2023-02-03 格式:DOCX 页数:12 大小:20.65KB
下载 相关 举报
VB中资源文件的使用方法.docx_第1页
第1页 / 共12页
VB中资源文件的使用方法.docx_第2页
第2页 / 共12页
VB中资源文件的使用方法.docx_第3页
第3页 / 共12页
VB中资源文件的使用方法.docx_第4页
第4页 / 共12页
VB中资源文件的使用方法.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

VB中资源文件的使用方法.docx

《VB中资源文件的使用方法.docx》由会员分享,可在线阅读,更多相关《VB中资源文件的使用方法.docx(12页珍藏版)》请在冰豆网上搜索。

VB中资源文件的使用方法.docx

VB中资源文件的使用方法

VB中资源文件的使用方法

在几乎所有的Windows应用程序中都拥有资源文件,这些文件定义使用应用程序将要显示很多的用户界面元素,以及提供程序所需要的各种类型数据的存储场所。

资源文件在VC应用程序中应用十分广泛,在VB应用中却很少提及它。

其实在开发VB应用程序时,一样可以将要用到的字符串、位图、图标和其它类型的数据等做成一个资源文件。

因为这样做至少有以下几个优点:

(1)提高性能减少内存空间的占用,这是因为字符串、位图、图标和数据可以不必在程序启动或调用窗体时就全部加载,而是根据需要随时从资源文件中加载。

(2)将所需要的资源文件中单独存放在一个资源文件中,使用移植程序和更改一些界面显示变得十分简单,不必访问程序的源代码。

  下面就和大家具体谈谈如何在VB中建立和使用资源文件。

  首先,我们先了解一下windows应用程序中一般经常使用的资源:

  位图:

位图是用于创建应用程序用户界面的图像。

例如,用户可以为工具栏按钮创建一套位图,也可以创建在其它窗口上显示的位图。

一般来说,都是在图像编辑器中创建位图,然后再将该位图添加到资源文件中。

  图标:

图标是类似于位图的小图像,然而,虽然位图可以具有任意大小的尺寸,但是图标却小得多,通常为16*16像素或32*32像素。

图标使用的很多方法与位图一样。

然而,图标通常被用作代表最小化应用程序的图象、代表应用程序文档类型的图像和其它类型的应用系统。

  字符串表:

就是指文本串的一个表格,通常来说字符串用来显示菜单命令的提示、对话框中和消息框中显示的信息。

要访问串表格中的文本串,需引用串的ID,它与定义表格的源文件中的串相联系。

  光标:

光标是代表鼠标在屏幕上的位置的图像。

尽管windows系统定义和许多类型的光标,但用户也可以创建自己需要的光标。

  定制资源:

定制资源是用户想存储在其应用程序资源文件中的任何类型的数据。

这些数据可以是文本文件或二进制文件,用户可以用任何喜欢的方式定制资源。

资源文件只是作为存储区域。

创建了定制资源,可以避免必须从磁盘文件中加载数据,因为数据随资源文件一起加载。

  对话框:

对话框的资源定义包括样式标志(控制对话框外观及行为的值)以及对话框中含控件的大小和位置。

  菜单栏:

用户应用程序的菜单栏也可以在资源文件中定义。

可以在资源文件中指定命令和命令的ID,以用命令在菜单中的位置。

  加速器:

加速器也称为热键。

它们是用户快速选取命令时所按下的键,使用热键时,不必在应用程序的菜单中寻找命令。

加速器在一个表格中定义,这个表将按键与命令资源的ID联系起来。

  那么在VB开发环境中如何使用这些资源呢?

  1、添加资源文件编辑器,

  启动VB6.0的IDE集成环境,新建一个工种。

点选菜单“外接程序”下的“外接程序管理器”,在弹出的对话框的列表框中选择“VB6资源编辑器”,选择加载并单击“确定“后退出对话框。

这样在“工具”菜单栏中就有一项“vb资源编程器”了。

打开这个工具就可以进行资源文件的编辑了。

  2、编辑资源文件

  在资源编辑器中编辑资源文件非常简单。

它可是编辑我们在上面先提到的位图、图标、光标、字符串及定制资源五种类型的资源,如图1所示:

  在进行编辑时,点击相应的图标就可以添加资源了。

  编辑资源的方法也很容易,以添加图片为例看一看添加位图的方法:

点击添加位图按钮,在弹出的对话框中选择一个位图文件,单击“OK”后,位图的添加就完成了,在这里要注意属性按钮,点击它以后,可以选择请语言版本并输入资源的ID号,这个ID号是标识一类资源的唯一编号,必须记住资源的ID号,以使在应用程序中调用。

编辑好资源后,关闭资源编辑器,资文件自动加入新建的工种内。

另外,也必须将资源文件保存。

其它资源的编辑方法也大体上一样。

  3、使用资源文件,在应用程序中调用资源文件与直接使用资源基本上是一致的。

对了,在一个工种中只能保存一个资源文件,在使用资源文件之前,请必须保证资源已经加入到资源文件中了。

  调用资源文件中资源的函数有:

  LoadResString返回一个文本字符串。

语法:

LoadResString(index)index必需是一个整数,它用来指定资源文件中数据的标识符(即经常提到的ID号),如果ID号为1的资源保留给应用程序图标。

  LoadResPicture用以从资源(.res)文件装载位图、图标或光标。

它的语法:

  LoadResPicture(index,format)

  LoadResPicture函数的语法包含下列部分:

  参数描述

  index一个整数或字符串,它用来指定资源文件中数据的标识

  符(ID)。

ID标识符为1的资源保留给应用程序的图标。

  format必需的。

一个数值或常数,如下列“设值"中所描述的,

  指定返回数据的格式。

  用于format的设置值有:

  常数值描述

  vbResBitmap位数0位图资源

  vbResIcon图标1图标资源

  vbResCursor2光标资源

  说明:

可以使用LoadResPicture函数代替对存储在Form或控件的Picture属性中的图形的引用。

  LoadResData返回一个Byte数组,用以从资源(.res)文件装载若干可能类型的数据。

语法为:

  LoadResData(index,format)

  LoadResData函数的语法包含下列部分:

  部分描述

  index必需的。

一个整数或字符串,它用来指定资源文件中数据的标识

  符(ID)。

ID标识为1的资源保留给应用程序的图标。

  Format必需的。

一个数值,它用来按照下列“设置值"中的描述,指定返

  回数据的原始格式。

该数值也可以是用户定义资源的字符串名。

  设置值用于format的设置值有:

  设置值描述

  1光标资源

  2位图资源

  3图标资源

  4菜单资源

  5对话框

  6字符串资源

  7字体目录资源

  8字体资源

  9加速键表

  10用户定义资源

  12群组光标

  14群组图标

  说明:

LoadResData从资源文件装载的数据可以达到64K。

  最后我们用一个简单的例子来说明这几个函数的用法:

  

(1)建立一个窗体,在窗体上放置三个按钮,一个图片框用来显示图片、图标。

其属性如图2所示。

  按照前面讲述的方法添加资源文件编辑器并建立工程文件,里面包含一个字符串,位图、图标、光标和一个自定义的资源。

  程序代码如下所示:

  PrivateSubcmdLoadData_Click()

  DimttAsByte

  EndSub

  PrivateSubcmdLoadPicture_Click()

  picTest.Picture=LoadResPicture(101,1)

  '如何为0表示位图,为2表示光标

  EndSub

  PrivateSubcmdLoadstring_Click()

  DimstrAsString

  str=LoadResString(101)

  MsgBoxstr

  EndSub

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

下面详细说明资源文件的使用方法

LoadResData返回一个Byte数组,用以从资源(.res)文件装载若干可能类型的数据。

语法为:

  LoadResData(index,format)

  LoadResData函数的语法包含下列部分:

  部分描述

  index必需的。

一个整数或字符串,它用来指定资源文件中数据的标识

  符(ID)。

ID标识为1的资源保留给应用程序的图标。

  Format必需的。

一个数值,它用来按照下列“设置值"中的描述,指定返

  回数据的原始格式。

该数值也可以是用户定义资源的字符串名。

  设置值用于format的设置值有:

  设置值描述

  1光标资源

  2位图资源

  3图标资源

  4菜单资源

  5对话框

  6字符串资源

  7字体目录资源

  8字体资源

  9加速键表

  10用户定义资源

  12群组光标

  14群组图标

VB中资源文件的使用技巧

一、开发中英(简、繁)双版本

  现在比较流行的软件都会有中文版、英文版、繁体版等等多个版本,并可以根据系统的语言自动显示相适应的版本,那么这个功能在VB是如何实现得呢的:

1、首先通过API函数GetSystemDefaultLCID判断系统的语言

OptionExplicit

DimlangAsString

PrivateDeclareFunctionGetSystemDefaultLCIDLib"kernel32"()AsLong

PrivateSubForm_Load()

DimLocaleIDAsLong

LocaleID=GetSystemDefaultLCID

SelectCaseLocaleID

Case&H404

MsgBox"当前系统为:

中文繁体",,"语言"

Case&H804

MsgBox"当前系统为:

中文简体",,"语言"

lang="1"

Case&H409

MsgBox"当前系统为:

英文",,"语言"

lang="2"

EndSelect

EndSub

2、然后程序就可以加载保存在资源文件(这里我们就是使用的这种方法)、注册表、INI文件、文本文件或其他文件中的各类字符串,以达到达到实现多种语言的目的。

  ⑴启动VB6.0,在“外接程序→外接程序管理器”中加载“VisualBasic6资源编辑器”

  ⑵在VB资源编辑器窗口中,点击“编辑字符串表格”输入如下资料:

  标识号中文(中国)

  101例子

  102中文

  103英文

  201Ensample

  202Chinese

  203English

  ⑶保存资源文件,写如下代码:

(自定义装载字符的函数LoadString)

SubLoadString()

Me.Caption=LoadResString(Int(lang&"01"))

Command1(0).Caption=LoadResString(Int(lang&"02"))

Command1

(1).Caption=LoadResString(Int(lang&"03"))

EndSub

  ⑷怎么样一个简单的中英双版本的程序就做出来了,如果把lang的值设置为1,则显示中文,如果把lang的值设置为2,则显示英文。

ps:

更简单实用的方法是:

把不同语言文字放在同一个标识号ID对应的不同字符串表格中即可。

VB会自动实现多种语言转换!

二、直接播放EXE文件中的声音文件

  使用资源文件,可以直接在在EXE文件中播放声音文件(WAV文件),使程序显得更加专业。

  ⑴启动VB6.0,在“外接程序→外接程序管理器”中加载“VisualBasic6资源编辑器”

  ⑵在VB资源编辑器窗口中,点击“添加自定义资料”,增加任意的WAV文件,再双击刚刚创建的自定义资源,弹出”编辑属性”窗口,定义如下:

  类型:

"WAVE"

  标识号:

102

  语言:

中文(中国)

  ⑶保存资源文件,写如下代码:

OptionExplicit

PrivateDeclareFunctionGetSystemDefaultLCIDLib"kernel32"()AsLong

PrivateDeclareFunctionsndPlaySoundFromMemoryLib"winmm.dll"Alias"sndPlaySoundA"(lpszSoundNameAsAny,ByValuFlagsAsLong)AsLong

PublicConstSND_ASYNC=&H1&

PublicConstSND_MEMORY=&H4&

PrivateSubCommand5_Click()注释:

播放WAV文件

DimbArr()AsByte

bArr=LoadResData(102,"WAVE")

sndPlaySoundFromMemorybArr(0),SND_ASYNCOrSND_MEMORY

EndSub

  ⑷按F5运行本程序,点击Command按钮,就可以听到你选定的WAV文件的声音了。

三、直接调用各类图标、光标图片

  在一个程序中,我们可能需要调用多个图标、光标、图片文件,一般来说我们主要是使用ImageList控件,不过其时使用资源文件是最好的方法(可以少使用一个控件呀)。

  ⑴启动VB6.0,在“外接程序→外接程序管理器”中加载“VisualBasic6资源编辑器”

  ⑵在VB资源编辑器窗口中,点击“添加光标”,“添加图标”,“添加位图”,装载所需要的文件。

  ⑶程序代码如下:

Me.Icon=LoadResPicture(101,vbResIcon)注释:

加载图标

Picture1.Picture=LoadResPicture(101,vbResBitmap)注释:

加载位图

Command1.MouseIcon=LoadResPicture(101,vbResCursor)注释:

加载光标

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

----一.资源在软件设计中的作用----在Windows中,一个资源代表一个Windows对象的数据块,每个可执行文件都包含一个资源表,其中列出了该文件中的资源。

应用程序中使用的资源通常可分为两大类:

二进制资源和字符串资源;字符串资源指在应用程序的用户界面中出现的所有文本,其中包括菜单、对话框以及提示、警告和错误提示信息;二进制资源包括:

图标、位图、光标文件、声音、图象及视频等以二进制格式存放的资源。

----应用程序中引入资源文件的最初动机是为使应用程序更容易国际化;把应用程序分成两个概念模块:

代码模块和数据模块,如下所示:

数据模块+代码模块=产品

用户接口部件+应用程序部件=本地化产品----数据模块包含所有用户界面的字符串资源而不包含代码,相反,代码模块只包含可运行于所有区域的应用程序代码。

因而在开发不同语言版本的应用程序时,本地化小组只须把精力花在资源文件上,这样做有以下优点:

----高效:

由于代码是相同的,因而在开发新的国际化应用程序只须创建新的资源文件,这样可以顺利地开发不同语言版本的应用程序;安全:

无论在内部或利用外部公司本地化程序,都可以不用修改代码,这样做可以减少化在国际版测试上的精力;更好的本地化:

由于所有的字符串资源都在一个文件中,因此可以提高本地化工作的效率并防止遗漏。

----要将应用程序使用的资源从应用程序中分离出来组成数据模块,可以用资源编译器将这些对象合并到一个资源文件里;利用资源文件组织资源,允许你很容易将大量的图形位图和图标文件直接包含在你的项目中,在对他们进行访问时单独加载,能改进加载时间,避免资源在调用窗口时全部加载而加快程序代码执行效率;除此外,还可以增加空间,这是因为字符串、位图、图标和数据可以不必在调用窗口或模块时就全部加载,而是按照需要从资源文件中加载。

----二.资源在资源定义文件的组织与定义----字符串资源和二进制资源的定义语法分别如下:

----1.字符串资源----在资源定义文件里,字符串资源是包含在一个字符串表中的,定义语法格式:

STRINGTABLE[load_option][mem_option]

begin

StringIDstring

.

.

.

end----参数说明---------load_option指出资源被装栽的方式:

preload(程序执行时立即装载);loadoncall(资源在被调用时装载,默认方式)。

---------mem_option指定资源被载入内存后是否可以移动和卸载。

有三个参数可选:

Fixed(指定资源存放在一个固定的内存区域中),Moveable(资源在系统有必要压缩内存时可以被移动),Discardable(资源在不再使用时被卸载);---------StringID指定一个整数作为识别资源的资源号;---------String字符串资源,它必须包含再两个双引号之内,而且长度不超过255个字节,一个字符串资源在资源定义文件里只能放在一行之中。

----资源编译器编译资源时,是按标签号来分类的,每16个字符串为一段,标签号高12位相同的将被划分为同一段,在装载资源文件时是以段来栽入和卸载的。

----资源定义例子:

#defineIDS_HELLO1

#defineIDS_GOODBYE2

STRINGTABLE

Begin

IDS_HELLO,“Hello”

IDS_GOODBYE,“goodbye”

End----2.二进制资源----二进制资源是不包含在资源定义文件里的。

资源定义文件只包含了一个指向包含该资源的文件的指针,这些指针在资源定义文件里被称为单行声明。

----定义语法:

nameIDkeyword[load_option][mem_option]filename----参数说明:

----------nameID指定一个名字或整数来标识该资源。

这个标识号在同类的资源里是唯一的,而在图标类资源中,标识号0是保留号,0号图标资源是应用程序图标。

因而,图标类资源的标识号只能从1开始;---------keyword二进制资源的类别,可以设为以下参数之一:

Bitmap(位图文件)、cursor(光标文件)、iocn(图标文件)、sound(声音文件)、video(视频文件);---------load_option该参数功能与字符串资源对应定义参数相同---------mem_option该参数功能与字符串资源对应定义参数相同---------fileName包含资源的文件名,文件名格式采用MS-DOS的文件名格式,而且必须是全路径文件名,可以用双引号括起来也可以不括起来。

----例:

12BitmapPicture“c:

\disk.map”----3.资源文件的编译----用资源文件编译器把资源定义文件编译成标准的Windows资源文件后,该资源文件就可以加载到应用项目中被应用程序调用,编译后的文件是标准的资源文件,可由Microsoftc++和其它大部分的Windows开发工具使用。

编译资源定义文件可以用资源编译器RC.EXE。

----格式:

RC/R[option]definition_filesource_file-------/R该参数指定资源文件仅被编译而不连接到可执行文件-------option此参数为/?

则列出资源编译器RC.EXE的命令行参数;为/foName则指定编译后扩展名为.RES的资源文件名;-------definitionfile指定被编译的资源定义文件----例:

RC/R/fotest.restest.rc

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 交规考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1