摘要:由於GIF格式動畫文件具有小巧、制作方便等特點,因此在網上得到廣泛應用,但遺憾的是VB中的多媒體控件卻無法播放它,這給我們設計VB應用程序帶來了不便。在此我們向大寫介紹一種利用網絡浏覽器IE實現在VB中播放GIF動畫的方法。並給出一個簡捷、實用的“畫中畫”滾動顯示程序。
----GIF動畫格式文件是一種動態存儲的圖形格式文件。在內容相同的條件下,與其它格式文件相比,由於它占用的存儲空間少,且制作手段成熟,可浏覽的軟件工具也很多,所以倍受設計者的青睐。然而令人遺憾的是,在VisualBasic中,無論是多媒體控件MCI、MCIWnd,還是Animation控件,甚至調用
WindowsAPI函數都無法播放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的基本控件,因此在使用該控件之前必須先將其裝入工具箱中。裝入方法:在工具箱中點擊鼠標右鍵→選中“部件”→復選MicrosoftInternetControls→然後點擊“確定”鍵即可。
----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是UniformResourceLocator的縮寫,是在Internet的WWW服務程序上用於指定信息位置的表示方法。
----下面我們結合一個實例進行具體說明。這是一個“畫中畫”滾動顯示應用程序,界面由循環滾動顯示的文字、背景圖象、和播放的GIF動畫三部分組成。其中循環顯示的文字用透明的Label控件實現;動畫用WebBrowser控件實現播放。
----①所需控件:
----本程序需要一個PictureBox控件、一個Label控件、一個WebBrowser控件、一個Timer控件。
----②各控件的屬性設置如下:
控件名稱屬性設置值含義
Label1控件BackStyle0設置Label1控件的背景是透明的。
Timer1控件Interval200設置每0.2秒發生一次Timer1_Timer()事件。
----③各事件的相應代碼如下:
首先定義一個變量,以便用它來存放需要滾動顯示的字符串。
DimaaAsString
在Form_Load()事件中進行初始化工作,具體代碼如下:
PrivateSubForm_Load()
Picture1.Picture=LoadPicture(App.Path&"demo1.jpg")
WebBrowser1.Navigate(App.Path&"
ew1.gif")
----aa="這是一個利用網絡浏覽器IE中WebBrowser控件制作的GIF動畫播放程序。"
Label1.ForeColor=QBColor(11)
Label1.FontSize=18
Label1.Caption=aa
EndSub
◆在Timer1_Timer()事件中,每隔0.2秒改變
一次Label1控件的Caption屬性值。
PrivateSubTimer1_Timer()
`讓字符串頭尾相接,以便形成滾動效果。
aa=Mid(aa,2,59) Mid(aa,1)
Label1.Caption=aa
EndSub
◆在Picture1_Click()事件中,卸載並退出應用程序。
PrivateSubPicture1_Click()
UnloadMe
EndSub
----④調整各控件至適當的大小和位置。
----二、注意事項及附加說明
----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控件不是VisualBasic的控件,而是由IE提供的。)。讀者如要詳細了解這方面的情況,請查閱VisualStudio98中的MSDN。具體步驟如下:
----從MicrosoftDeveloperNetwork中選擇MSDNLibraryVisualStudio6.0,查找關於ReusingtheWebBrowserControl的主題,位置在InternetExplorer:PlatfromSDK。從哪可以找到有關WebBrowser控件的詳盡資料。
----3.注意你的發布權限。由於受到軟件知識產權的影響,任何軟件都有它的發行權限。在VisualBasic中,你可以自由地發布任何由VisualBasic創建的應用程序、部件、DLL、ActiveX控件、各種媒體文件、示例應用程序在Samples子目錄下)以及系統第一次安裝VisualBasic時最初復制到VisualBasic主目錄的Icons子目錄、Graphics子目錄、ODBC子目錄下的任何文件。但除此之外的其它軟件一般都不允許你發布。例如:你的應用程序中包含有對網絡浏覽器IE的引用,那麼“應用程序安裝向導”在創建你
的安裝程序時,就會因試圖發布無權發布的軟件而出錯。
----錯誤原因:因為我們無權用VisualBasic的“應用程序安裝向導”來發布網絡浏覽器IE。
----那麼既然我們不能在VB的應用程序中發布網絡浏覽器IE,又怎麼樣保證應用程序中的引用能得以實現呢?
----解決辦法①:如果用戶的計算機上已經安裝了網絡浏覽器IE,那麼直接安裝你開發的應用程序即可。
----解決辦法②:如果用戶的計算機上還未安裝網絡浏覽器IE,那麼只要在運行你的應用程序之前,安裝上網絡浏覽器IE即可。
----需要說明的是,上述解決方法具有普遍性,如果你的應用程序在發布時遇到類似的問題(例如:你的應用程序中包含有對Word97、Excel97的引用),均可照此處理。->