admin 管理员组

文章数量: 1086019


2024年3月27日发(作者:js图片特效脚本)

在VB中制作图标按钮的四种方法

2010-07-19 17:31

发信人: huanghm (东方不败), 信区: Program

标 题: VB 中图标按钮的制作

发信站: 深大荔园晨风站 (Tue Jan 13 11:11:08 1998), 转信

现在大多数Windows应用程序的功能都比较丰富,相应的菜单结

构也比较复杂。一些操作命令往往要打开好几层菜单。尤其是一些

常用的操作命令,因其使用较频繁,即使仅打开一层菜单,从中选择

一项也是比较麻烦的。因此现在绝大多数Windows应用程序中除了菜

单之外,还配备了工具栏。工具栏中有与常用菜单命令相对应的按

钮,按这些按钮的效果和选择菜单命令的效果完全一样。工具栏中

的按钮和普通按钮不同的是,它们不用文本字符串,而是用图标来

标明按钮的功能。这种图标按钮的好处是省地方,菜单命令往往比

较冗长,而工具栏提供的空间又十分有限。使用图标按钮最大的好

处还在于其直观形象性,这与Windows图形用户界面(GUI)方便用

户、简化操作的目标是一致的。

Windows系统提供的标准按钮(如OK、Cancel等)中只能显示文本

字符串。在VisualBasic(以下简称为VB)中,按钮是使用工具箱中的命

令按钮控件CommandButton来实现的。CommandButton使用的是Windows系

统提供的标准按钮控件,因而无法装入图标。下面介绍在VB中实现

图标按钮的几种方法。

一、使用标准控件实现图标按钮

VB的标准控件中,能够装入图形的只有Image(图像)

和PictureBox(图片框)两种。Image的功能较简单,占用系统资源较

少。PictureBox的功能很丰富,可以将它看作是Image的一个“超集”,

它占用的系统资源当然就要多一些。为了利用可装入图形的控件模

拟图标按钮的功能,首先应比较一下它们各自所能够接收到的事

件(如表1所示)。

表1中打勾(√)的表示该控件提供了相应的事件驱动过程接口,

打叉(×)的则表示该控件没有提供,控件不接收相应的事件。因为

是要模拟CommandButton的功能,所以Image和PictureBox的其它事件没有

列出。

CommandButton的事件ImagePictureBox

Click√√

DragDrop√√

KeyDown×√

KeyPress×√

KeyUp×√

LostFocus×√

MouseDown√√

MouseMove√√

MouseUp√√

表1Image和PictureBox与CommandButton中相同的事件

从表1中可以看出,PictureBox具有CommandButton中所有事件的接

口,因而可以完全模拟CommandButton的功能。CommandButton的某些事

件在Image中接收不到。对于一般应用来说,我们往往只

对CommandButton的Click事件过程编程,因此Image也可以用于模

拟CommandButton,而且能够满足大多数应用的需要。注意,在没有配

备鼠标的系统中,因为只能使用键盘作为输入设备,而Image又没有

键盘事件的接口,这时就只能用PictureBox了。

VB安装到硬盘上之后,在VB目录下提供了丰富的图形库。其中包

括位图(Bitmap,在BITMAPS子目录下)、图标(Icon,在ICONS子目录

下)和图元(Metafile,在METAFILE子目录下)。每种图形又按类分别

存储在不同的子目录下。在图标按钮的制作中,我们可以使

用BITMAPSTOOLBAR3子目录下的位图。该目录中存储了常用工具栏

中的按钮的位图,每种按钮一般有三个位图文件,分别对应按钮在

松开、按下和无效时的状态。例如,、

和分别对应剪切(cut)按钮在松开、按下和无效时的状

态。因此,我们可让按钮在松开时装入*-,按下时装

入*-,按钮无效时装入*-。可以编写如下的相应事件

过程代码(以PictureBox实现的剪切按钮为例):

SubPicture1_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAs

Single)

e=LoadPicture("C:")

'按下鼠标按钮时,装入按钮被按下时的位图

EndSub


本文标签: 按钮 控件 图标 提供 装入