在C++ Builder中使用ActiveX控制元件顯示Flash動畫 (轉)
在C++ Builder中使用顯示Flash動畫
在的大力扶持下,越來越多的公司開始支援ActiveX了,這對於喜歡的朋友來說可是件值得高興的事!因為我們可以在中很方便地外部的OCX來實現複雜的功能(比爾·蓋茨這回總算做了件好事),比如在你的程式中呼叫IE來顯示HTML檔案等。今天我想向大家介紹一下如何在C++ Builder中使用ActiveX控制元件顯示Flash動畫。
1.、匯入ActiveX控制元件
本文的主角是:swflash.ocx,這個檔案98中附帶有,在預設下Windows會將它安裝到“WindowsSystemMacromedFlash”目錄下,如果你在安裝時沒有選“預設安裝”可以到的安裝光碟中的win98_68.cab檔案中找到它。
C++ Builder在對ActiveX的支援方面可說是做得非常出色,我們可以很方便地匯入中的ActiveX控制元件:選擇“Component->Import ActiveX Control”,在上面的控制元件列表中選擇“ShockWave Flash(Version 1.0)”(圖1),再點下面的“Install”按鈕就行了!如果控制元件列表中沒有它,那麼說明ShockWave
Flash控制元件還沒有在系統中註冊,不要緊,我們可以點選“Add”按鈕在你的中找到這個OCX檔案後再Install,C++ Builder會自動為它註冊。
2.程式設計顯示Flash動畫
匯入成功後,C++ Builder會在ActiveX頁中增加一個“ShockWaveFlash”控制元件(圖2),建立一個新工程,在合適的位置放置一個ShockWaveFlash控制元件,適當調整一下它的大小,然後在它的“Movie”屬性中填上一個你的上已有的Flash動畫檔名(如c:flashtest.swf),然後按F9執行,怎麼樣,不用寫一行程式碼我們就做出了一個能顯示Flash動畫的程式!
不過為了讓它更好地工作,我們還有必要了解一下ShockWaveFlash控制元件的屬性和方法:
【屬性】AlignMode(int型)和SAlign(WString型)
控制動畫的顯示位置(把這兩個屬性列在一起說明它們是相互關聯的,改變一個另一個也會相應地改變,後面類似的情況就不作說明了)。取值範圍及含義如下:
0 空 當前位置
1 L 當前位置靠左
2 R 當前位置靠右
3 LR 當前位置居中
4 T
當前位置靠上
5 LT 左上
6 TR 右上
7 LTR 上方居中
8 B 當前位置靠下
9 LB 左下
10 RB 右下
11 LRB 下方居中
12 TB 當前位置垂直居中
13 LTB 靠左垂直居中
14 TRB 靠右垂直居中
15 LTRB 中央位置
【屬性】BackgroundColor(int型)和BGColor(WideString型) 設定背景顏色,BackgroundColor為整型值,BGColor為它的HEX字串。
【屬性】L(bool型) 是否迴圈顯示
【屬性】Menu(bool型) 是否顯示右鍵選單,建議設為true,因為它可以完成對Flash動畫的大部分控制工作,而不用我們寫程式碼。
【屬性】Movie(WideString型) Flash動畫的檔名,可以在執行狀態動態設定,要關閉一個動畫只要把它設為空即可。
【屬性】Quality(int型)和Quality2(WideString型) 控制動畫的顯示質量,一般將Quality設為1以獲得高質量的顯示效果。
【屬性】ScaleMode(int型)和scale(WideString型) 控制動畫的顯示比例,取值範圍及含義如下:
0 ShowAll 顯示全部
1 NoBorder 無邊框模式
2 ExactFit 拉伸到整個畫面
3 空 原始大小
【方法】PercentLoaded 返回動畫已經載入的百分比,你可以建立一個程式條(ProgressBar)來顯示動畫載入的程式。
【方法】LoadMov用於載入上的動畫,動畫檔名為一個BSTR型的URL值,在 C++ Builder 中可以用 AnsiToOLESTR 將Char型的字串轉換成BSTR型。
好了,利用上面介紹的屬性和方法,相信你已經很好地使用它了!遺憾的是 ShockWaveFlash 控制元件的功能現在還不太完善,比如無法返回動畫的實際大小和背景顏色等,但對於我們只要在程式中顯示一個特定的Flash動畫來說,這些並不重要。
3.註冊ActiveX控制元件
如果你要把你的程式給別人使用,為了防止他沒有安裝或是註冊swflash.ocx檔案而導致程式無法執行,你必須把OCX檔案也一起附帶上,並在程式中為它在系統中註冊,註冊方法有兩種:
方法一:呼叫外部程式 Regsvr32.exe
註冊: Execute(Handle,NULL,“regsvr32.exe”,“swflash.ocx”,NULL,SW_SHOWNORMAL);
反註冊: ShellExecute(Handle,NULL,“regsvr32.exe”,“/u swflash.ocx”,NULL,SW_SHOWNORMAL);
方法二:呼叫控制元件本身所包含的註冊和反註冊函式
每一個OCX控制元件中都提供了兩個輸出函式“DllRegisterServer”和“DllUnRegisterServer”,可以註冊和反註冊控制元件本身,我們可以用LoadLibrary()和GetProcAddress()來呼叫它們,這和動態呼叫DLL庫的方法是一樣的,我在這裡就不多說了。
4.之談
最後,我還想介紹一下使用ActiveX控制元件的技巧。
一般的ActiveX控制元件都是沒有幫助檔案的,在C++ Builder的IDE環境中我們只能看到它的設計期屬性和事件,那麼怎麼才能知道它的執行期屬性和方法呢?C++ Builder在匯入一個ActiveX控制元件後會在“Imports”目錄中生成相應的標頭檔案(*.h),只要把它開啟看一下就一目瞭然了!
另外我們還必須瞭解各種屬性、方法及其引數的含義,那就要程式設計序來試了,為每個想了解的屬性和方法建立一個選單項,點選時用InputBox輸入引數來試驗效果,還可以建立一個狀態列來顯示與其相關變數的值。
寫了這麼多,不知你是否理解了呢?還不趕快在你的程式里加上如今最流行的Flash動畫,讓你的朋友羨慕一下!(江蘇戈夢傑)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1006096/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 在BCB中輕鬆使用ActiveX控制元件 (轉)控制元件
- flash在jsp中不能顯示?JS
- 在delphi中使用flash控制元件 (轉)控制元件
- 在C++ Builder中定義事件 (轉)C++UI事件
- c++ builder中的ado使用 (轉)C++UI
- 怎樣在C++Builder中建立使用DLL (轉)UI
- 用C++Builder實現工作列圖示動畫效果 (轉)C++UI動畫
- LayaAir引擎學習日誌8----AS3語言中Flash Builder中顯示文字Hello Layabox(AS3)AIS3UI
- 在VC中,讓動態建立的ActiveX控制元件響應Windows訊息。 (轉)控制元件Windows
- 用C++ Builder在桌面上畫圖 (轉)C++UI
- 在工作列上顯示圖示 (轉)
- C# 自定義屬性在propertyGrid控制元件中顯示C#控制元件
- Automation In C++ Builder (轉)C++UI
- 用控制元件工具在WPS表格中插入Flash控制元件
- Delphi使用VB編寫的ActiveX控制元件全攻略 (轉)控制元件
- Delpi在MDI視窗中顯示圖形控制元件及指定背景的解決方案 (轉)控制元件
- 在C++Builder使用TTS(Text To Speech) (轉)C++UITTS
- 在Flash中使用ASP技術 (轉)
- Flash末日將近:谷歌明年停運Flash顯示廣告谷歌
- 使用ActiveX控制元件開發網頁常見的問題 (轉)控制元件網頁
- 編寫在瀏覽器中不彈出警告的ActiveX控制元件瀏覽器控制元件
- 元素在div中底部顯示
- Linux中Firefox Flash中文亂碼或不能顯示LinuxFirefox
- QT中使用ActiveX控制元件、QAxBase、QAxWidgetQT控制元件
- Flash builder 除錯技巧 (分享)UI除錯
- PowerBuilder 9實現FLASH動畫播放(轉)UI動畫
- 用 PHP 動態建立 Flash 動畫 (轉)PHP動畫
- 使DevExpress日期控制元件正確顯示 (轉)devExpress控制元件
- 在VC++6.0開發中實現全屏顯示 (轉)C++
- 在Redhat Linux中顯示粗體、斜體中文(轉)RedhatLinux
- 使用PagedDataSource類實現DataList和Repeater控制元件的分頁顯示 (轉)控制元件
- java呼叫ACTIVEX控制元件Java控制元件
- MVC應用程式顯示Flash(swf)影片MVC
- 在sql*plus中顯示長字元SQL字元
- ActiveX控制元件 數字簽名 簡明指南 (轉)控制元件
- 在Windows 和Mac平臺上破解安裝Flash Builder 4WindowsMacUI
- lottie 動畫在 vue 中的使用動畫Vue
- 在VB.Net中建立使用控制元件陣列 (轉)控制元件陣列