• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • C++ Builder用ActiveX顯示Flash動畫

    發表于:2007-05-26來源:作者:點擊數: 標簽:
    在微軟的大力扶持下,越來越多的軟件公司開始支持ActiveX了,這對于喜歡編程的朋友來說可是件值得高興的事!因為我們可以在程序中很方便地調用外部的OCX文件來實現復雜的功能(比爾蓋茨這回總算做了件好事),比如在你的程序中調用IE來顯示HTML文件等。今天

    在微軟的大力扶持下,越來越多的軟件公司開始支持ActiveX了,這對于喜歡編程的朋友來說可是件值得高興的事!因為我們可以在程序中很方便地調用外部的OCX文件來實現復雜的功能(比爾·蓋茨這回總算做了件好事),比如在你的程序中調用IE來顯示HTML文件等。今天我想向大家介紹一下如何在C++ Builder中使用ActiveX控件顯示Flash動畫。

    1.安裝、導入ActiveX控件

    本文的主角是:swflash.ocx,這個文件Windows98中附帶有,在缺省模式下Windows會將它安裝到“Windows\System\Macromed\Flash”目錄下,如果你在安裝時沒有選“缺省安裝”可以到Win98的安裝光盤中的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:\flash\test.swf),然后按F9運行,怎么樣,不用寫一行代碼我們就做出了一個能顯示Flash動畫的程序!

    不過為了讓它更好地工作,我們還有必要了解一下ShockWaveFlash控件的屬性和方法:

     

    【屬性】

    AlignMode(int型)和SAlign(WideString型)

    控制動畫的顯示位置(把這兩個屬性列在一起說明它們是相互關聯的,改變一個另一個也會相應地改變,后面類似的情況就不作說明了)。取值范圍及含義如下:

       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字符串。

    【屬性】

    Loop(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)來顯示動畫加載的進程。

    【方法】

    LoadMovie 用于加載網絡上的動畫,動畫文件名為一個BSTR型的URL值,在 C++ Builder 中可以用 AnsiToOLESTR 函數將Char型的字符串轉換成BSTR型。

    好了,利用上面介紹的屬性和方法,相信你已經很好地使用它了!遺憾的是 ShockWaveFlash 控件的功能現在還不太完善,比如無法返回動畫的實際大小和背景顏色等,但對于我們只要在程序中顯示一個特定的Flash動畫來說,這些并不重要。

    3.注冊ActiveX控件

    如果你要把你的程序給別人使用,為了防止他沒有安裝或是注冊swflash.ocx文件而導致程序無法運行,你必須把OCX文件也一起附帶上,并在程序中為它在系統中注冊,注冊方法有兩種:

    方法一:調用外部程序 Regsvr32.exe

    注冊: ShellExecute(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動畫,讓你的朋友羨慕一下!

    原文轉自:http://www.kjueaiud.com

    評論列表(網友評論僅供網友表達個人看法,并不表明本站同意其觀點或證實其描述)
    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>