vb imagelist 作用

以下资料来自MSDN关于ImageList 控件帮助文档:

ImageList 控件不能独立使用,只是作为一个便于向其它控件提供图象的资料中心。

ImageList 控件的作用象图像的储藏室,同时,它需要第二个控件显示所储存的图像。第二个控件可以是任何能显示图像 Picture 对象的控件,也可以是特别设计的、用于绑定 ImageList 控件的 Windows 通用控件之一。这些控件包括ListView、ToolBar、TabStrip、Header、ImageCombo、和 TreeView 控件。为了与这些控件一同使用 ImageList,必须通过一个适当的属性将特定的 ImageList控件绑定到第二个控件。对于 ListView 控件,必须设置其 Icons 和 SmallIcons 属性为 ImageList 控件。对于 TreeView、TabStrip、ImageCombo、和 Toolbar 控件,必须设置 ImageList 属性为 ImageList 控件。

在设计时,可以用“ImageList 控件属性”对话框的“图像”选项卡来添加图象。在运行时,可以用 Add 方法给 ListImages 集合添加图象。

对于 Windows 通用控件来说,设计时可以用“自定义属性”对话框来指定一个 ImageList。运行时也可以用 ImageList 属性指定一个 ImageList 控件,就象下面的例子所述的那样,它可以设置 TreeView 控件的:

TreeView1.ImageList = ImageList1 '指定 ImageList 属性
重点 当与 Windows 通用控件一起使用 ImageList 控件时,在将它绑定到第二个控件之前,按照您希望的顺序将全部需要的图像插入到 ImageList。一旦 ImageList 被绑定到第二个控件 ,您就不能再删除图像了,并且也不能将图像插入到 ListImages 集合中间。但是您可以在集合的末尾添加图像。

一旦 ImageList 与某个 Windows 通用控件相关联,就可以在过程中用 Index 属性或 Key 属性的值来引用 ListImage 对象了。下面的示例设置 TreeView 控件的第三个 Node 对象的 Image 属性为 ImageList 控件中的第一个 ListImage 对象:

'使用 ImageList1 的 Index 属性值。
TreeView1.Nodes(3).Image = 1
'或者使用 Key 属性值。
TreeView1.Nodes(3).Image = "image 1" '假定 Key 值为 "image 1。"

要与其它控件(不能绑定到 ImageList 控件的控件)一起使用 ImageList 控件,将第二个控件的 Picture属性赋值给 ImageList 控件中的任何一个图像的 Picture对象。例如,下面的代码把 ListImages 集合中的第一个 ListImage 对象的 Picture 对象赋值给一个新创建的 StatusBar 面板的 Picture 属性:

Dim pnlX As Panel
Set pnlX = StatusBar1.Panels.Add() '添加一个 Panel 对象。
Set pnlX.Picture = ImageList1.ListImages(1).Picture '设置图片。

注意 将图像赋值给 Picture 对象时,必须使用 Set 语句。

可以插入任何大小的图像到 ImageList 控件中。然而,由第二个控件显示的图像大小是由一个因素决定的:第二个控件是否也是一个绑定到 ImageList 控件的 Windows 通用控件。

当 ImageList 控件被绑定到另一个 Windows 通用控件时,不同大小的图片可以被添加到控件中,但是在关联的 Windows 通用控件中显示的图象大小将受到添加到 ImageList 图像中的第一个图象大小的约束。例如,如果您添加一个 16 × 16像素的图像到 ImageList 控件中,然后将 ImageList 绑定到 TreeView 控件(用 Node 对象显示),所有存储于 ImageList 控件中的图像将以 16 × 16像素显示,即使它们的尺寸是更大或更小。

此外,如果您用 Picture 对象显示图像,则存储在 ImageList 控件中的任何图像都将以图像最初的大小显示,无论它的尺寸是更大还是更小。
  VB6本身只支持16色(4位)和256色(8位)的图标,这种图标只是早期的Windows版本所采用的 图标格式标准。现在各种高清真彩色(32位带Alpha通道、24位不带Alpha通道)早已经很流行 并且普遍使用了,但在VB6中却不能直接支持、使用。即使想把这种真彩色图标加入图标资源、 或者是把它加入ImageList控件中,也会被提示“无效图片”而不能加入。记得论坛中曾经有某 位高人说过,VB6的Form是支持真彩色图标的,可以给窗体设置真彩色图标。   昨天上午我试了一下,新建一个标准EXE工程,然后随意找了一个高清真彩图标文件,给工 程的Form1设置Icon属性,成功了……… 但是,感觉它显示的图标有点怪异,总觉得有些不对 劲呢…… 于是,我把这个高清图标文件中32×32和16×16这两种规格的真彩色图标单独提取 出来,分别保存为一个.ico格式的文件,然后再用这两个图标文件来给它设置Icon属性。果然, 这两个文件在操作时VB6都提示“无效图片”!!!这就说明:VB6是不支持真彩色图标的。最 开始时“能设置成功”,只不过是因为它从图标组中找到了256色的、它能支持的格式罢了。   闲话不多说了,这个模块进行了简单的封装,提供了一些基础的操作功能。源码中有比较 详细的注释,使用起来应该是很简单的,就不再写什么“应用示例代码”了。首先要调用接口 函数装载图标,从图标文件加载就调用LoadFromFile(),从字节数组加载就调用LoadData()。 加载成功后,即可调用其它接口来使用图标对象了,比如用GDI方式把图标画到窗口内、或者画 到某个PictureBox上、给自己的窗口或别的程序窗口设置一个真彩色图标等。虽然在“资源” 中不能以“图标”的方式把真彩图标加入,但是,却可以按“自定义资源”的方式把图标文件 装入,使用时读取出对应的资源数据,然后调用函数LoadFromData()进行加载。加载成功就可 以使用里面的真彩色图标了。   这个模块只提供了一些基本的功能,如果有需要可以自己再进行扩展。还有就是没有进行 异常处理,因此要求用来加载的文件必须是正确的图标文件、并且可以读取;数组数据则必须 是合法的图标文件数据。否则可能会引起异常,你也可以修改代码进行异常捕获处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值