|
VFP應(yīng)用程序多媒體徽標的實現(xiàn)
摘 要:介紹了利用WindowSAPI函數(shù)mciSendString()和VFP外部應(yīng)用程序接口庫文件foxtools.fll,在VFP應(yīng)用程序中實現(xiàn)多媒體廠商徽標的處理方法。
關(guān)鍵詞:VFP;應(yīng)用程序;多媒體;表單 一、引言 類似于某些電視臺放置在屏幕左上角的動畫臺標,越來越多的應(yīng)用軟件在屏幕的某個位置放置動態(tài)的廠商標記圖案或系統(tǒng)徽標,為應(yīng)用程序增色不少。由于VFP不支持GIF動畫文件,要實現(xiàn)這種效果就比較困難。一種方法是在屏幕上放置多張圖片,利用Timer控件交替顯示這些圖片。這種方法在交互式處理時用戶會有遲滯感,顯示效果也難以令人滿意。另一種方法是以O(shè)LE方式處理多媒體徽標,簡單快捷,但存在運行速度較慢、重復占用磁盤空間和軟件不易維護等問題。比較好的處理方法是先用Cool3D方便快速地制作一個視頻剪輯AVI多媒體徽標文件,然后利用WindowsAPI函數(shù)mciSendString()以及foxtools.fll庫函數(shù),實現(xiàn)VFP應(yīng)用程序多媒體徽標的高效處理。 二、基本處理思想 我們知道,WindowsAPI函數(shù)mciSendString()可以播放多媒體文件,SetWindowPos()函數(shù)則使我們可以在應(yīng)用程序窗體上的指定位置播放媒體。光有這兩個函數(shù)還不夠,我們需要利用VFP為我們提供的外部應(yīng)用程序接口庫文件foxtools.fll。其中,_WhToHwnd() 函數(shù)返回指定WHANDLE的窗口句柄,_WonTop()則返回頂端窗口的窗口句柄。在表單中利用這兩個外部過程可以獲得當前表單的窗口句柄,再利用SetWindowPos()就可以在表單中適當位置播放媒體了。 MciSendString()函數(shù)的使用格式如下:
各參數(shù)的含義:lpszCommand,播放多媒體的指令串;lpszReturnString,接收返回信息緩沖區(qū)的地址,若不需要返回信息可設(shè)置為NULL;cchReturn,緩沖區(qū)大??;hwndCallback ,返回的窗口句柄。 SetWindowPos()函數(shù)的使用格式如下:
各參數(shù)的含義:hwnd,窗口句柄;hWndInsertAfter,設(shè)置當前窗口的Zorder值;x,窗口左邊坐標點;y,窗口頂部坐標點;cx,以像素表示的窗口寬度;cy,以像素表示的窗口高度。 三、具體實現(xiàn)方法 ⒈利用Cool3D制作一個80X40左右大小的視頻剪輯文件TagAVI.AVI。 ⒉在VFP中新建一個表單main,在其init事件中鍵入如下代碼:
?、吃诒韱蝝ain上新建PlayMedia方法,其代碼為:
⒋在表單main的Activate事件中添加如下代碼:
?、迪虮韱蝝ain添加一個Timer控件,設(shè)置其Interval屬性值為500(可根據(jù)TagAVI.avi文件的大小進行調(diào)整),然后在其timer事件中輸入下列代碼:
四、結(jié)束語 上述程序在Windows98環(huán)境中,用VFP5.0調(diào)試通過。另外,在發(fā)布應(yīng)用程序時,應(yīng)注意將foxtools.fll文件隨應(yīng)用系統(tǒng)一起發(fā)布。實際上,我們還可以播放dat、mpg、mov等格式的多媒體文件,但需要在控制面板"多媒體"屬性中確認相應(yīng)的編碼解碼器已經(jīng)安裝,否則將無法播放多媒體徽標。 |
|
|