VB动感特效两例 使用VB设计具有“动感”的命令图标栏 我们在使用Word、Excel等Windows应用程序时，经常会见到在程序界面顶端有一行“立体式”图标按钮。当用鼠标按下某一个图标按钮时，程序就执行相应的操作。这一行“立体式”图标按钮通常就称作命令图标栏或工具条。命令图标栏一般提供一些最常用的命令，供用户快速地取用，并且它设计时采用了“立体式”按钮，操作时会产生凹下去和凸出来的“动感”，笔者这里就谈谈如何用VB来建立具有“动感”的命令图标栏。 使命令图标具有“动感”是依靠对命令图标的不同状态的图像切换来获得的。当鼠标按下时，图标显示为凹入状态的图像；当松开时，图标显示为凸出状态的图像。通过图像切换就使命令图标具有了“动感”，具体设计步骤如下：
1．首先在窗体中创建一个图片框(Picture Box)，将其Align属性置为1，使图片框固定在窗体上端，调节其宽度使其能安置图像或命令按钮。
2．在图标框内创建若干个图像框(Image Control)，设置其Autosize＝True，Picture属性在程序运行中设置。
3．编写程序代码。这里假设某个命令图标凸出状态的图像文件名为“zrup.bmp”，凹入状态的图像文件名为“zrdown. bmp”。
窗体装入时：
Sub form－load()
Imagel.picture＝Loadpicture("zrup.bmp") ' 命令图标凸出
End sub
鼠标按下时：
Sub Imagel－mousedown(Button As Integer Shift As Integer， X As single，Y As single)
Imagel.picture＝Loadpicture("zrdown.bmp") ' 命令图标如下：
End sub
鼠标松开时：
Sub Imagel－mouseup(Button As Integer，Shift As Integer，X As single，Y As single) Imagel.picture＝Loadpicture("zrup.bmp")' 命令图标凸出
End sub
以上只能使命令图标具备凹下去的功能，但当在按鼠标按钮不放，并拖曳鼠标使光标移到外头，原来图标仍然处于凹下状态。要使其自动凸起，就要编写如下代码：
Sub Imagel-mouseup(Button As Integer,Shift As Integer,X As single,Y As single)
Select Case Button
Case 1
If X<=0 or X>Imagel.Width or Y<=0 or Y>Imagel.Height then Imagel.picture=Loadpicture("zrup.bmp") '凸出
Else
Imagel.picture=Loadpicture("zrdown.bmp") '凹入
End if
End select
End sub
通过以上三步骤就可以建立具有“动感”的命令图标，若具有多个命令图标时，可通过创建图像控制数组来实现。BMP是常见的一种图像格式，也可以使用VB提供的丰富的不同状态的命令图标位图文件，它在VB的子目录bitmaps中。
用VB创建动态图标
所谓动态图标，就是窗体左上角的图标不停的变化着。其实现原理也很简单：经过一个时间段，让窗体的图标变成另一个图标。如此循环，就可以实现了。
下面的例子实现了该功能。
步骤1：建立新工程，在窗体上放置一个PictureBox控件，设置其Index = 0，Visible = false；一个Timer时间控件。
步骤2：加入部件“Microsoft Windows Common Controls 6.0(SP3)”，并在窗体上放置一个ImageList控件，加入图片，假设本例中加入了8张图片。
步骤3：编写如下代码：
Private Sub Form_Load()
Dim i As Integer

Set Picture1(0).Picture = ImageList1.ListImages(1).Picture

For i = 1 To 7
Load Picture1(i)
Set Picture1(i).Picture = _
ImageList1.ListImages(i + 1).Picture
Next

End Sub

Private Sub Timer1_Timer()
Static i As Integer
On Error Resume Next
If i = 8 Then i = -1
i = i + 1
Me.Icon = Picture1(i).Picture
End Sub

步骤4：编译运行，看到窗体的图标在不停的变化了吗？
(罗雍)