国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

在CB中使用ActiveX控件顯示Flash動(dòng)畫(huà)

2019-11-17 05:28:46
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  在微軟的大力扶持下,越來(lái)越多的軟件公司開(kāi)始支持ActiveX了,這對(duì)于喜歡編程的朋友來(lái)說(shuō)可是件值得興奮的事!因?yàn)槲覀兛梢栽诔绦蛑泻芊奖愕卣{(diào)用外部的OCX文件來(lái)實(shí)現(xiàn)復(fù)雜的功能(比爾·蓋茨這回總算做了件好事),比如在你的程序中調(diào)用IE來(lái)顯示Html文件等。今天我想向大家介紹一下如何在C++ Builder中使用ActiveX控件顯示Flash動(dòng)畫(huà)。
   1.安裝、導(dǎo)入ActiveX控件
   本文的主角是:swflash.ocx,這個(gè)文件Windows98中附帶有,在缺省模式下Windows會(huì)將它安裝到“Windows/System/Macromed/Flash”目錄下,假如你在安裝時(shí)沒(méi)有選“缺省安裝”可以到Win98的安裝光盤(pán)中的win98_68.cab文件中找到它。
   C++ Builder在對(duì)ActiveX的支持方面可說(shuō)是做得非常出色,我們可以很方便地導(dǎo)入系統(tǒng)中的ActiveX控件:選擇“Component->Import ActiveX Control”,在上面的控件列表中選擇“ShockWave Flash(Version 1.0)”(圖1),再點(diǎn)下面的“Install”按鈕就行了!假如控件列表中沒(méi)有它,那么說(shuō)明ShockWave Flash控件還沒(méi)有在系統(tǒng)中注冊(cè),不要緊,我們可以點(diǎn)擊“Add”按鈕在你的計(jì)算機(jī)中找到這個(gè)OCX文件后再I(mǎi)nstall,C++ Builder會(huì)自動(dòng)為它注冊(cè)。
   2.編程顯示Flash動(dòng)畫(huà)
   導(dǎo)入成功后,C++ Builder會(huì)在ActiveX頁(yè)中增加一個(gè)“ShockWaveFlash”控件(圖2),建立一個(gè)新工程,在合適的位置放置一個(gè)ShockWaveFlash控件,適當(dāng)調(diào)整一下它的大小,然后在它的“Movie”屬性中填上一個(gè)你的硬盤(pán)上已有的Flash動(dòng)畫(huà)文件名(如c:/flash/test.swf),然后按F9運(yùn)行,怎么樣,不用寫(xiě)一行代碼我們就做出了一個(gè)能顯示Flash動(dòng)畫(huà)的程序!
   不過(guò)為了讓它更好地工作,我們還有必要了解一下ShockWaveFlash控件的屬性和方法:
   【屬性】AlignMode(int型)和SAlign(WideString型) 控制動(dòng)畫(huà)的顯示位置(把這兩個(gè)屬性列在一起說(shuō)明它們是相互關(guān)聯(lián)的,改變一個(gè)另一個(gè)也會(huì)相應(yīng)地改變,后面類似的情況就不作說(shuō)明了)。取值范圍及含義如下:
   0 空 當(dāng)前位置
   1 L 當(dāng)前位置靠左
   2 R 當(dāng)前位置靠右
   3 LR 當(dāng)前位置居中
   4 T 當(dāng)前位置靠上
   5 LT 左上
   6 TR 右上
   7 LTR 上方居中
   8 B 當(dāng)前位置靠下
   9 LB 左下
   10 RB 右下
   11 LRB 下方居中
   12 TB 當(dāng)前位置垂直居中
   13 LTB 靠左垂直居中
   14 TRB 靠右垂直居中
   15 LTRB 中心位置
   【屬性】BackgroundColor(int型)和BGColor(WideString型) 設(shè)置背景顏色,BackgroundColor為整型值,BGColor為它的HEX字符串。
   【屬性】Loop(bool型) 是否循環(huán)顯示
   【屬性】Menu(bool型) 是否顯示右鍵菜單,建議設(shè)為true,因?yàn)樗梢酝瓿蓪?duì)Flash動(dòng)畫(huà)的大部分控制工作,而不用我們寫(xiě)代碼。
   【屬性】Movie(WideString型) Flash動(dòng)畫(huà)的文件名,可以在運(yùn)行狀態(tài)動(dòng)態(tài)設(shè)置,要關(guān)閉一個(gè)動(dòng)畫(huà)只要把它設(shè)為空即可。
   【屬性】Quality(int型)和Quality2(WideString型) 控制動(dòng)畫(huà)的顯示質(zhì)量,一般將Quality設(shè)為1以獲得高質(zhì)量的顯示效果。
   【屬性】ScaleMode(int型)和scale(WideString型) 控制動(dòng)畫(huà)的顯示比例,取值范圍及含義如下:
   0 ShowAll 顯示全部
   1 NoBorder 無(wú)邊框模式
   2 ExactFit 拉伸到整個(gè)畫(huà)面
   3 空 原始大小
   【方法】PercentLoaded 返回動(dòng)畫(huà)已經(jīng)加載的百分比,你可以建立一個(gè)進(jìn)程條(PRogressBar)來(lái)顯示動(dòng)畫(huà)加載的進(jìn)程。
   【方法】LoadMovie 用于加載網(wǎng)絡(luò)上的動(dòng)畫(huà),動(dòng)畫(huà)文件名為一個(gè)BSTR型的URL值,在 C++ Builder 中可以用 AnsiToOLESTR 函數(shù)將Char型的字符串轉(zhuǎn)換成BSTR型。
   好了,利用上面介紹的屬性和方法,相信你已經(jīng)很好地使用它了!遺憾的是 ShockWaveFlash 控件的功能現(xiàn)在還不太完善,比如無(wú)法返回動(dòng)畫(huà)的實(shí)際大小和背景顏色等,但對(duì)于我們只要在程序中顯示一個(gè)特定的Flash動(dòng)畫(huà)來(lái)說(shuō),這些并不重要。
   3.注冊(cè)ActiveX控件
   假如你要把你的程序給別人使用,為了防止他沒(méi)有安裝或是注冊(cè)swflash.ocx文件而導(dǎo)致程序無(wú)法運(yùn)行,你必須把OCX文件也一起附帶上,并在程序中為它在系統(tǒng)中注冊(cè),注冊(cè)方法有兩種:
   方法一:調(diào)用外部程序 Regsvr32.exe
   注冊(cè): ShellExecute(Handle,NULL,“regsvr32.exe”,“swflash.ocx”,NULL,SW_SHOWNORMAL);

   反注冊(cè): ShellExecute(Handle,NULL,“regsvr32.exe”,“/u swflash.ocx”,NULL,SW_SHOWNORMAL);
   方法二:調(diào)用控件本身所包含的注冊(cè)和反注冊(cè)函數(shù)
   每一個(gè)OCX控件中都提供了兩個(gè)輸出函數(shù)“DllRegisterServer”和“DllUnRegisterServer”,可以注冊(cè)和反注冊(cè)控件本身,我們可以用LoadLibrary()和GetProcAddress()來(lái)調(diào)用它們,這和動(dòng)態(tài)調(diào)用DLL庫(kù)的方法是一樣的,我在這里就不多說(shuō)了。
   4.經(jīng)驗(yàn)之談
   最后,我還想介紹一下使用ActiveX控件的技巧。
   一般的ActiveX控件都是沒(méi)有幫助文件的,在C++ Builder的IDE環(huán)境中我們只能看到它的設(shè)計(jì)期屬性和事件,那么怎么才能知道它的運(yùn)行期屬性和方法呢?C++ Builder在導(dǎo)入一個(gè)ActiveX控件后會(huì)在“Imports”目錄中生成相應(yīng)的頭文件(*.h),只要把它打開(kāi)看一下就一目了然了!
   另外我們還必須了解各種屬性、方法及其參數(shù)的含義,那就要編程序來(lái)試了,為每個(gè)想了解的屬性和方法建立一個(gè)菜單項(xiàng),點(diǎn)擊時(shí)用InputBox輸入?yún)?shù)來(lái)試驗(yàn)效果,還可以建立一個(gè)狀態(tài)欄來(lái)顯示與其相關(guān)變量的值。
   寫(xiě)了這么多,不知你是否理解了呢?還不趕緊在你的程序里加上如今最流行的Flash動(dòng)畫(huà),讓你的朋友羨慕一下!

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 张掖市| 育儿| 六枝特区| 田阳县| 甘泉县| 双桥区| 洛南县| 轮台县| 杭锦旗| 海兴县| 恭城| 茶陵县| 商河县| 祁阳县| 乌拉特后旗| 肥西县| 沧州市| 东明县| 桓台县| 乐安县| 恩平市| 泽州县| 西昌市| 台北市| 西青区| 三亚市| 沛县| 台东市| 洪洞县| 延津县| 碌曲县| 广德县| 偏关县| 尼勒克县| 诸城市| 永吉县| 大英县| 金川县| 商南县| 桂东县| 手游|