在一些多媒体应用程序中我们常常看到各种各样的图形按钮,这些图形按钮使应用程序界面变得更直观更友善。下面,本文利用VB的来实现这种动态按钮。
思想方法:图形按钮以Image控件来实现;对每一个按钮准备两幅图片,一幅用于正常显示,一幅用于当鼠标指向按钮时显示;这些图片按顺序存放于ImageList控件中。下面是演示程序界面构成及代码:
一.界面构成
1. Form主窗体
Name:Form1
Caption:动态图形按钮演示
BackColor:&H80000005&(白色)
2.Label用于显示选择哪一个按钮
Name:Label1
3.ImageList控件用于存储图片,ImageList 属于控件组Microsoft Windows Common Controls 5.0 (COMCTL32.OCX)中的一个。
把用于按钮的图片按顺序存放在ImageList中。
4.Image控件用于显示图像
创建Image数组Image1(1)-Image1(4)
二、代码实现
Dim butStatus(1 To 4) As Boolean '按钮的状态数组
Dim butMessage(1 To 4) As String '提示信息数组
Private Sub Form_Load()
Dim i As Integer
For i = 1 To 4
Image1(i).Picture = ImageList1.ListImages(2 * i - 1).Picture
butStatus(i) = False
Next
butMessage(1) = “点击了圆形按钮”
butMessage(2) = “点击了房子按钮”
butMessage(3) = “点击了鲜花按钮”
butMessage(4) = “点击了退出按钮”
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
For i = 1 To 4
If butStatus(i) Then
Image1(i).Picture = ImageList1.ListImages(2 * i - 1).Picture
butStatus(i) = False
End If
Next
End Sub
Private Sub Image1_Click(Index As Integer)
Label1.Caption = butMessage(Index)
Beep
End Sub
Private Sub Image1_MouseMove(Index As Integer, Button As Integer, Shift As Integer, X As Single, Y As Single)
If Not butStatus(Index) Then
Image1(Index).Picture = ImageList1.ListImages(Index * 2).Picture
butStatus(Index) = True
End If
End Sub
本程序在VB6.0下通过,运行时界面如下:(

)