用VB在窗口中显示动画图标

发表于:2007-07-14来源:作者:点击数: 标签:
Windows 3.X系统有一个鲜为人知的地方。首先,选取该系统所带某一应用程序(如文件管理器,画笔,扫雷等)的“帮助\关于***...”菜单弹出对话框后,按下Ctrl和Shift键,同时用鼠标左键双击对话框中应用程序的图标,然后关闭对话框。接下来,重复上述操作(两次
  Windows 3.X系统有一个鲜为人知的地方。首先,选取该系统所带某一应用程序(如文件管理器,画笔,扫雷等)的“帮助\关于***...”菜单弹出对话框后,按下Ctrl和Shift键,同时用鼠标左键双击对话框中应用程序的图标,然后关闭对话框。接下来,重复上述操作(两次打开的应用程序可以不同),再次双击图标,奇迹出现了! 对话框中将出现一面飘扬的Windows旗帜和“Dedicated to all the hard-workin g people of the Microsoft Windows 3.10 Team!”这样一条文字信息。如果你再做一次,一定还有新的惊喜。在Windows 95中,上述现象已不复存在,但是在执行其有关“查找”功能以及缺少快捷方式时,对话框内所显示的来回移动的放大镜或照来照去的手电筒则可谓动画图标的上乘佳作。

  如果能够在我们自己开发的应用程序中恰当地应用动画图标,一定会给程序界面增色不少。

  其实,这些用Visual Basic实现起来是很方便的。

  (1)使用VB所带的ICONWORK或其他图标制作工具制作各动画帧的图标Demo0.Ico,Demo1 .Ico,Demo2.Ico,……

  (2)建立窗口,在合适位置如左上角添加Image(图形)控件,打开其Properties(属性)窗口,将其中的Stretch(伸展性)项置为True,并从Picture(图片)项右栏点开Load Picture( 加载图片)窗口,从其中的文件列表中选取(1)中制作的第1个图标(Demo0.Ico),其余属性取其缺省状态。

  (3)在窗口中添加Timer(计时器)控件,并设置其Interval(时间间隔)属性值(如100ms,该值越大动画速度越慢)。

  (4)编写代码,利用计时器控件每隔一个时间间隔调用一次计时器函数的特性,在该函数中更替图形控件所显示的图标即可获得动画效果。

  下面所附的源程序代码摘自笔者开发的某应用程序,在Windows 95中文版+Visual Basi c 4.0环境下运行效果颇佳。

  附:程序清单(Form5.Frm)

  VERSION 4.00

  Begin VB.Form form5 对话框窗体

  BackColor = & H00C0C000& 背景色

  BorderStyle =3'Fixed Double 边界类型

  Caption ="关于…" 标题

  …… ……

  Top =1980 上边界

  Width =3840 宽度

  Begin VB.Image Imagel 图形控件

  Height =855 高度

  Left =120 左边界

  Picture ="FORM5.frx":0000 图片

  Stretch =-1'True 伸展性

  Top =240 上边界

  Width =975 宽度

  End

  Begin VB.Timer Timerl 计时器控件

  Interval =100 时间间隔(ms)

  Left =360 左边界

  Top =2520 上边界

  End

  Begin VB.CommandButton Commandl 按钮控件

  Caption="确认" 标题

  …… ……

  Top =2520 上边界

  Width =1455 宽度

  End

  ……

  End

  Attribute VB_Name ="Form5"

  Attribute VB_Creatable =False

  Attribute VB_Exposed=False

  Dim count% 图标序号

  Private Sub Form_Load()

  count=-1 置初值

  End SubPrivate Sub Timerl_Timer() 计时器函数

  count=(count+1)Mod 3 更换显示图标

  If count =0 Then

  Image1.Picture=LoadPicture("Demo0.Ico")

  Else If count= 1 Then

  Image1.Picture=LoadPicture("Demo1.Ico")

  Else

  Imagel.Picture=LoadPicture("Demo2.Ico")

  End If

  End Sub

  Private Sub Command1_Click ()

  Form5.Hide 关闭窗口

  End Sub

  …… 

原文转自:http://www.ltesting.net