?? 87.txt
字號:
在VB6.0中播放GIF動畫
摘要:由于GIF格式動畫文件具有小巧、制作方便等特點,因此在網上得到廣泛應用,但遺憾的是VB中的多媒體控件卻無法播放它,這給我們設計VB應用程序帶來了不便。在此我們向大寫介紹一種利用網絡瀏覽器IE實現在VB中播放GIF動畫的方法。并給出一個簡捷、實用的“畫中畫”滾動顯示程序。
GIF動畫格式文件是一種動態存儲的圖形格式文件。在內容相同的條件下,與其它格式文件相比,由于它占用的存儲空間少,且制作手段成熟,可瀏覽的軟件工具也很多,所以倍受設計者的青睞。然而令人遺憾的是,在Visual Basic中,無論是多媒體控件MCI、MCIWnd,還是Animation控件,甚至調用Windows API函數都無法播放GIF格式的動畫文件。造成這一現象的原因在于GIF動畫格式文件不是VB多媒體控件所支持的視頻格式文件(VB多媒體控件所支持的視頻格式文件主要有:AVI格式、MOV格式、FLI格式、FLC格式等)。以往我們的解決方法是:首先利用一些格式轉換工具,比如GIFMovieGear將GIF格式的動畫文件轉換為AVI格式的動畫文件,然后再用多媒體控件MCI和MCIWnd進行播放。但這種做法主要存在以下兩個缺陷:
1.所形成的AVI格式動畫文件太大(常常是GIF格式文件的幾十倍),從而影響系統的效率。
2.所形成的AVI格式動畫文件往往帶有比較復雜的調色板信息,所以當程序在播放這種AVI格式動畫文件時,如果還兼有動態顯示的文字和圖象信息,則整個畫面就會產生抖動和閃爍,從而使顯示效果大受影響。
為解決這個問題,我們在此提出一個全新的處理方案:通過在VB中調用IE瀏覽器來實現GIF動畫的播放,實際使用表明:效果甚好。
一、瀏覽器IE和WebBrowser控件
眾所周知,運行VB6.0需要安裝瀏覽器IE4.0或以上版本,當IE4.0和VB6.0安裝完成后,我們便可以在VB6.0中使用IE所提供的WebBrowser控件播放GIF動畫了。具體方法如下:
1.由于WebBrowser控件并不是VB的基本控件,因此在使用該控件之前必須先將其裝入工具箱中。裝入方法:在工具箱中點擊鼠標右鍵→選中“部件”→復選Microsoft Internet Controls→然后點擊“確定”鍵即可。
2.選取WebBrowser控件(注意不同版本IE的WebBrowser控件的圖標是不同的,IE4.0中的WebBrowser控件的圖標是一個地球;IE3.0是一個搜索圖標。),添加到窗體的相應位置上。
3.設計相應代碼,通過使用WebBrowser控件的Navigate方法播放GIF動畫文件。
Navigate方法的語法格式為:
WebBrowser控件名.NavigateURL[Flags,][TargetFrameName,][PostData,][Headers]
WebBrowser控件支持的主要方法有:
GoBack: 回退到上一屏。
GoForward: 進入到下一屏。
GoHome: 回家。即回到主頁。
Stop: 停止導航。
Refresh: 刷新。
Navigate:導航。
WebBrowser控件所響應的事件:
BeforeNavigate事件: 在開始導航前發生。一般在此獲取完整的URL字符串。
WebBrowser控件最主要的參數:
URL: 獲得導航用的標準URL字符串。例如:它能將”www.MicroSoft.Com”自動翻譯為”http://www.MicroSoft.com”.URL是Uniform Resource Locator的縮寫,是在Internet的WWW服務程序上用于指定信息位置的表示方法。
下面我們結合一個實例進行具體說明。這是一個“畫中畫”滾動顯示應用程序,界面由循環滾動顯示的文字、背景圖象、和播放的GIF動畫三部分組成。其中循環顯示的文字用透明的Label控件實現;動畫用WebBrowser控件實現播放。
①所需控件:
本程序需要一個PictureBox控件、一個Label控件、一個WebBrowser控件、一個Timer控件。
②各控件的屬性設置如下:
控件名稱屬性設置值含義
Label1控件BackStyle=0設置Label1控件的背景是透明的。
Timer1控件Interval=200設置每0.2秒發生一次Timer1_Timer()事件。
③各事件的相應代碼如下:
首先定義一個變量,以便用它來存放需要滾動顯示的字符串。
Dim aa As String
在Form_Load()事件中進行初始化工作,具體代碼如下:
Private Sub Form_Load()
Picture1.Picture=LoadPicture(App.Path&"\demo1.jpg")
WebBrowser1.Navigate(App.Path&"\new1.gif")
aa="這是一個利用網絡瀏覽器IE中WebBrowser控件制作的GIF動畫播放程序。"
Label1.ForeColor=QBColor(11)
Label1.FontSize=18
Label1.Caption=aa
End Sub
◆在Timer1_Timer()事件中,每隔0.2秒改變一次Label1控件的Caption屬性值。
Private Sub Timer1_Timer()
'讓字符串頭尾相接,以便形成滾動效果。
aa=Mid(aa,2,59)+Mid(aa,1)
Label1.Caption=aa
End Sub
◆在Picture1_Click()事件中,卸載并退出應用程序。
Private Sub Picture1_Click()
Unload Me
End Sub
④調整各控件至適當的大小和位置。
二、注意事項及附加說明
1.不同版本IE的MicrosoftInternetControls所包含的控件及控件數量是不同的。設計者在使用時必須注意這一點。
①WINDOWS95所帶的IE3.0的MicrosoftInternetControls只包含一個控件,即WebBrowser控件。
②中文版IE4.0CN的MicrosoftInternetControls包含兩個控件,即WebBrowser控件和DownUp控件。
③英文版IE4.01的MicrosoftInternetControls包含兩個控件,即WebBrowser控件和ShellFolderViewOC控件。
2.實際上,在VB5.0中也可以使用WebBrowser控件播放GIF動畫,但如果VB5.0是安裝在WINDOWS95下,那么必須安裝IE3.0或IE4.0;如果是安裝在WINDOWS98下,則可不必(因為WINDOWS98自帶IE4.0)。然而需要特別聲明的是:無論是VB5.0的聯機手冊,還是其它幫助文件,均未介紹有關WebBrowser控件的資料(因為WebBrowser控件不是Visual Basic的控件,而是由IE提供的。)。讀者如要詳細了解這方面的情況,請查閱Visual Studio 98中的MSDN。具體步驟如下:
從Microsoft Developer Network中選擇MSDN Library Visual Studio 6.0,查找關于Reusing the WebBrowser Control的主題,位置在Internet Explorer:PlatfromSDK。從那可以找到有關WebBrowser控件的詳盡資料。
3.注意你的發布權限。由于受到軟件知識產權的影響,任何軟件都有它的發行權限。在Visual Basic中,你可以自由地發布任何由Visual Basic創建的應用程序、部件、DLL、ActiveX控件、各種媒體文件、示例應用程序在\Samples子目錄下)以及系統第一次安裝Visual Basic時最初復制到Visual Basic主目錄的\Icons子目錄、\Graphics子目錄、\ODBC子目錄下的任何文件。但除此之外的其它軟件一般都不允許你發布。例如:你的應用程序中包含有對網絡瀏覽器IE的引用,那么“應用程序安裝向導”在創建你的安裝程序時,就會因試圖發布無權發布的軟件而出錯。
錯誤原因:因為我們無權用VisualBasic的“應用程序安裝向導”來發布網絡瀏覽器IE。
那么既然我們不能在VB的應用程序中發布網絡瀏覽器IE,又怎么樣保證應用程序中的引用能得以實現呢?
解決辦法①:如果用戶的計算機上已經安裝了網絡瀏覽器IE,那么直接安裝你開發的應用程序即可。
解決辦法②:如果用戶的計算機上還未安裝網絡瀏覽器IE,那么只要在運行你的應用程序之前,安裝上網絡瀏覽器IE即可。
需要說明的是,上述解決方法具有普遍性,如果你的應用程序在發布時遇到類似的問題(例如:你的應用程序中包含有對Word97、Excel97的引用),均可照此處理。
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -