时间: 2021-07-31 作者:daque
步调员在开拓软硬件的功夫,往往须要很多图片来粉饰步调界面,东西栏,菜单等控件城市用到洪量的图片,依照惯例的本领,咱们普遍经过vb开拓情况径直导出须要的图片,如bmp或图标文献;如许做的长处是简单大略,但也带来了大幅度延长主实行文献巨细的烦恼。另一种本领是经过loadpicture因变量动静加载指定目次下的图片文献,但把图片文献和主步调一道颁布后很简单被误删。那么,有没有什么本领来提防那些情景的爆发呢?
资源是指可供咱们运用的保存在计划机内的数据。囊括字符串资源、图标资源、游标资源、位图资源以及自设置资源(不妨是大肆典型的文献,如.exe、.doc等典型的文献)。资源文献则是指用来寄存百般资源的文献,资源文献源文献的扩充名为.rc,他是一个文本文献,运用任何文本编纂器都不妨编纂。经过资源编写翻译器编写翻译后的文献扩充名是.res,大略的说,这个.res文献能把一切指定的资源十足囊括进入,更局面一点,就像一个收缩文献囊括很多个文献夹或文献一律。
vb6.0为咱们供给了一个特殊好用的东西——资源编纂器。该编纂器不须要咱们写.rc文献而经过一种更径直更和睦的可视化操纵实行资源的编纂,生存后会机动天生.res文献。
资源文献天生后,咱们创造一个activex dll组件,并把该资源文献增添进入。而后,经过关系的因变量把资源导出供主步调挪用。
底下是所有操纵进程。
1、 兴建一个activex dll工程,工程名为:prjpictureres
2、 顺序翻开:外接步调->外接步调处置器->vb6.0资源编纂器,双击,决定。此时,在东西栏上展示一个资源处置器的按钮。
3、 点击“vb资源编纂器”按钮,展示如次的资源编纂器窗口。
图1
4、 按图1所示,增添四个图标和一个位图,点击“生存”,将天生一个扩充名为.res的资源文献,咱们将该文献定名为myres.res。同声,工程资源处置器会展示一个“关系文书档案”的节点,如图2:
图2
5、 在类模块class第11中学,咱们写如次代码将相映的资源导出。
public function loadres(resid as integer, imgtype as integer) as ipicturedisp
set loadres = loadrespicture(resid, imgtype)
end function
个中:参数resid为资源号,imgtype为图片典型(位图、图标或光标),这两个参数字传送入loadrespicture()因变量,底下,对loadrespicture()大略解说。
语法:
loadrespicture(index as integer, format as integer) as ipicturedisp
参数:
index: 必定的。一个平头或字符串,它用来指定资源文献中数据的操作符 (id) 。id操作符为 1 的资源保持给运用步调的图标。
format: 必定的。一个数值或常数,如次列“树立值”中所刻画的,指定归来数据的方法:
常数 值 刻画
vbresbitmap 0 位图资源
vbresicon 1 图标资源
vbrescursor 2 光标资源
6、 编写翻译成prjpictureres.dll文献。至此,activex dll文献仍旧实行。
7、 接下来做一个尝试工程,兴建一个exe工程,在窗体上放一个东西栏,用来表露.dll文献中的图标;一个imagelist控件;一个图像控件(image),用来表露.dll文献中的位图。界面如图3。
图3
8、 将方才实行的prjpictureres.dll组件经过“工程->援用”的本领介入到工程中。
9、 在窗体的load事变中写如次代码:
private sub form_load()
dim objres as prjpictureres.class1
set objres = new prjpictureres.class1
dim aimage as listimage
'树立图目标莫大和宽窄
imagelist1.imageheight = 24
imagelist1.imagewidth = 24
'往图像列表控件中增添图标(101、102、103、104为资源编号,下同)
set aimage = imagelist1.listimages.add(, , objres.loadres(101, vbresicon))
set aimage = imagelist1.listimages.add(, , objres.loadres(102, vbresicon))
set aimage = imagelist1.listimages.add(, , objres.loadres(103, vbresicon))
set aimage = imagelist1.listimages.add(, , objres.loadres(104, vbresicon))
'与东西栏关系
set toolbar1.imagelist = imagelist1
'增添东西栏按并树立图标
dim abutton as button
set abutton = toolbar1.buttons.add(, , "兴建", , 1)
abutton.tooltiptext = "兴建"
set abutton = toolbar1.buttons.add(, , "翻开", , 2)
abutton.tooltiptext = "翻开"
set abutton = toolbar1.buttons.add(, , "", tbrseparator)
set abutton = toolbar1.buttons.add(, , "生存", , 3)
abutton.tooltiptext = "生存"
set abutton = toolbar1.buttons.add(, , "另存为", , 4)
abutton.tooltiptext = "另存为..."
'树立东西栏其余属性
toolbar1.style = tbrflat '以flat情势表露
'树立image1控件属性
image1.stretch = true '图片自符合
'将位图资源加载到image1控件中(105为资源编号)
set image1.picture = objres.loadres(105, vbresbitmap)
'开释资源
set aimage = nothing
set abutton = nothing
set objres = nothing
end sub
至此,大功成功,一道来观赏一下咱们的最后大作(图4)。