用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.anti-gravitydesign.com