国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項超值服

開通VIP
VC控件篇(二)

以上部分操縱的都是Windows標(biāo)準(zhǔn)控件,其實在Windows里,你還會常常接觸到ActiveX控件,它來源于第三方,而非Windows操作系統(tǒng)。這樣的控件一般來說,功能豐富而且使用方便,從而大大簡化了程序員的工作。本章節(jié)以我們需要使用到的Flash控件為例細(xì)作闡述。

1 使用ActiveX控件

以上部分操縱的都是Windows標(biāo)準(zhǔn)控件,其實在Windows里,你還會常常接觸到ActiveX控件,它來源于第三方,而非Windows操作系統(tǒng)。這樣的控件一般來說,功能豐富而且使用方便,從而大大簡化了程序員的工作。本章節(jié)以我們需要使用到的Flash控件為例細(xì)作闡述。

1.1 控件的注冊

不同于Windows標(biāo)準(zhǔn)控件,ActiveX控件需要注冊才能使用,ActiveX一般以.OCX或者.DLL文件格式發(fā)布,可以使用VC附帶的工具來注冊某個控件,按照以下步驟:

1. 在VC的Tools菜單下啟動ActiveX Control Test Container;

2. 在ActiveX Control Test Container里打開菜單File\Register Controls…;

3. 彈出窗口Register Controls顯示系統(tǒng)中已注冊的所有ActiveX控件,點(diǎn)擊左下角的“Register…”按鈕;

4. 選擇待注冊的控件文件,如:“C:\WINNT\system32\Macromed\Flash\swflash.ocx”即為Macromedia Flash的ShockwaveFlash控件文件;

5. 點(diǎn)擊“打開”按鈕,即完成以上控件的注冊,我們可以在控件列表中發(fā)現(xiàn)它的名字為“ShockwaveFlash. ShockwaveFlash.1”;

以上操作畫面如圖所示:

圖25 注冊ActiveX控件

還有一種簡單一點(diǎn)的辦法,使用regsvr32注冊之即可,如圖示出注冊畫面:

圖26 使用regsvr32注冊ActiveX控件

對于某些軟件,安裝時即完成對自帶控件的注冊。例如:MacromediaFlash安裝之后,你的Internet瀏覽器就可以播放動畫了,你也可以在控件列表里找到ShockwaveFlash控件。那么這些軟件是如何完成控件的自注冊的呢(這也是常見的問題之一)?一種途徑是使用安裝程序,它們可以自動完成ActiveX控件的注冊;另一種方法是利用程序調(diào)用DllRegisterServer()即可:

HMODULE hModule=LoadLibrary(sControlFilePath);  

 if(hModule)   

{   FARPROC DLLRegisterServer = (FARPROC)GetProcAddress(hModule "DllRegisterServer");   

        if(DLLRegisterServer)   

       {   HRESULT regResult = DLLRegisterServer();  

            if(regResult != NOERROR)  

                MessageBox(NULL "注冊ActiveX控件時發(fā)生錯誤!" "警告" MB_OK|MB_ICONINFORMATION);  

         }   

      FreeLibrary(hModule); 

}  

1.2 引入控件

好了,目前為止,我們已經(jīng)有Flash控件了,那么我們在程序中引入它:

1. 在對話框設(shè)計界面空白處右鍵,彈出菜單,選擇Insert ActiveX Control…,如下所示:

圖27 選擇Insert ActiveX Control

2. 在Insert ActiveX Control窗口中,在控件列表中選擇Shockwave Flash Object,如圖所示:

圖28 選擇Shockwave Flash Object

1. 好了,現(xiàn)在的Flash控件成功引入!我們繼續(xù)調(diào)整Flash控件的大小和位置:

圖29 引入Flash控件

引入ActiveX控件,還有一種途徑,就是通過Project\Add To Project\Componets and Controls…,然后選擇Registered ActiveX Controls。在此不再贅述。

1.3 設(shè)置控件屬性

面對這個新鮮的玩意兒,我們該設(shè)置設(shè)置屬性,讓它干干活。

界面確實變化了不少,F(xiàn)lash Properties標(biāo)簽頁即列舉了Flash控件的屬性:

圖30 Flash控件的Flash Properties標(biāo)簽頁

All標(biāo)簽頁則以值的方式列出了該控件的所有屬性:

圖31 Flash控件的All標(biāo)簽頁

做過Flash的朋友可能對這些屬性的含義要熟悉一點(diǎn),例如:Quality用以設(shè)置動畫的畫面質(zhì)量,Scale則指定動畫的顯示方式,Play和Loop決定動畫是否一開始就播放以及是否循環(huán)播放,如此等等。

我們現(xiàn)在讓這個控件播放一則動畫,操作太簡單了,將Movie URL設(shè)置成動畫文件路徑即可:

圖32 設(shè)置Flash的Movie URL

運(yùn)行程序,乖乖,該來的都來了:

圖33 FlashPlayer運(yùn)行界面

1.4 映射控件變量

小試牛刀,看來已初顯成效,我們現(xiàn)在來更好地控制這個控件,第一步,映射變量:

1. 將控件的ID設(shè)置成IDC_FLASH_SCREEN;

2. 復(fù)習(xí)2.4節(jié)的內(nèi)容,打開ClassWizard窗口;

3. 選擇IDC_FLASH_SCREEN,雙擊之,不好,好像不太一樣:

圖34 提示窗口

VC可以自動每一個ActiveX控件封裝出一個類作為未來的控件變量的類型,如果你還希望映射控件變量,那么選擇“確定”。

4. 接下來的操作是為這個自動生成的類指定類名和文件名:

圖35 確認(rèn)類名和文件名

別找樂了,使用缺省的CShockwaveFlash就很好,我們繼續(xù)。

5. 接下來的畫面比較熟悉,我們選擇Control和CShockwaveFlash:

圖36 添加控件對象變量

ActiveX控件沒有值變量,只有一個控件對象變量,這個變量的類型就是前面準(zhǔn)備好的CShockwaveFlash,沒問題,我們將Flash控件取名為m_FlashScreen。

1.5 響應(yīng)控件事件

ActiveX控件也具有自身的事件,例如我們的IDC_FLASH_SCREEN具有以下事件:

圖37 ActiveX控件事件

事件的響應(yīng)與標(biāo)準(zhǔn)控件一樣,在此不再贅述。

1.6 調(diào)用控件方法

前面已經(jīng)提及,不管是標(biāo)準(zhǔn)控件,還是ActiveX控件,都可以映射成對象變量。既然是對象,我們就可以調(diào)用成員函數(shù)(或曰方法,method)來完成特定的功能,下面我們結(jié)合FlashPlayer來學(xué)習(xí)CShockwaveFlash方法的調(diào)用。

通過3.4,我們可以發(fā)現(xiàn)VC已經(jīng)幫我們準(zhǔn)備了兩個文件shockwaveflash.cpp和shockwaveflash.h,以及一個類CShockwaveFlash:

圖38 CShockwaveFlash的類框架

VC會自動提取控件的所有方法和屬性,并封裝成我們所熟悉的成員函數(shù)形式。CShockwaveFlash為我們準(zhǔn)備了不少的函數(shù),我們先用一個熟悉點(diǎn)的試試:

void CShockwaveFlash::SetMovie(LPCTSTR lpszNewValue)  

 {       static BYTE parms[] = VTS_BSTR;      

 InvokeHelper(0x66, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms,  lpszNewValue);   

}  

這個SetMovie()可以用來設(shè)置當(dāng)前播放動畫的URL,估計相當(dāng)于屬性窗口里面的Movie URL。我們使用這個SetMovie()結(jié)合“瀏覽”按鈕來實現(xiàn)選擇播放功能:

void CFlashPlayerDlg::OnBrowser()   

 {       CFileDialog FileDialog(true".swf""", OFN_EXPLORER,  "Flash動畫文件(*.swf)|*.swf|所有文件(*.*)|*.*||"this);             

        if(FileDialog.DoModal() == IDOK)      

        {           m_sFilePath = FileDialog.GetPathName();        

                  UpdateData(false);             

              m_FlashScreen.SetMovie(m_sFilePath);    

         }   

}   

嗯,運(yùn)行FlashPlayer,運(yùn)行界面如下所示,它現(xiàn)在已支持文件選擇的功能了:

圖39 支持點(diǎn)播的FlashPlayer

FlashPlayer程序至此打造完畢,以下向大家推薦一些比較有用的控件:

1.1 MsChart控件

控件名稱:Microsoft Chart Control 6.0 (sp4)

控件類:CMsChart

控件簡介:MsChart是微軟制作的功能強(qiáng)大的圖表工具,用它可以很方便的建立各種圖表,包括各種二維、三維的餅圖、折線圖、直方圖、折線圖、面積圖等。

應(yīng)用圖例:

圖40 MsChart控件應(yīng)用圖例

1.2 DataGrid控件

控件名稱:Microsoft DataGrid Control 6.0 (sp5)

控件類:CDataGrid

控件簡介:DataGrid控件是由微軟提供的數(shù)據(jù)表格控件,需要與ADODC控件配合使用。通過使用DataGrid控件,可以很方便地實現(xiàn)數(shù)據(jù)表記錄的瀏覽、增加、刪除和修改功能。

應(yīng)用圖例:

圖41 DataGrid控件應(yīng)用圖例

1.3 MsComm控件

控件名稱:Microsoft Communications Control version 6.0

控件類:CMsComm

控件簡介:MSComm 控件提供了一系列標(biāo)準(zhǔn)通訊屬性和方法,使用它可以建立起應(yīng)用程序與串行端口的聯(lián)接。

應(yīng)用圖例:

圖42 MsComm控件應(yīng)用圖例

以上畫面來源于筆者自行制作的手機(jī)通訊軟件FreePhone,其底層采用MsComm控件,感興趣的讀者可以參見http://bluejoe.yeah.net。

1.4 Web瀏覽器控件

控件名稱:Web瀏覽器控件

控件類:CWebBrowser2

控件簡介:Web瀏覽器相信大家再也熟悉不過了,IE瀏覽器就內(nèi)嵌了一個Web瀏覽器控件,這也就是為什么騰訊瀏覽器與IE如此相似的原因。通過使用Web瀏覽器控件,可以很方便地實現(xiàn)網(wǎng)頁頁面的瀏覽和顯示。

應(yīng)用圖例:

圖43 Web瀏覽器控件應(yīng)用圖例

1.5 ActiveMovie控件

控件名稱:ActiveMovie Control Object

控件類:CActiveMovie3

控件簡介:ActiveMovie是Microsoft公司開發(fā)的視頻播放控件。該控件內(nèi)嵌了Microsoft MPEG音頻解碼器和Microsoft MPEG視頻解碼器,播放控制更加簡捷方便。

應(yīng)用圖例:

圖44 ActiveMovie控件應(yīng)用圖例

2 結(jié)束語

控件是好東西,有了它,絕對會節(jié)省你的不少時間和精力。如果你正在為某個復(fù)雜的實現(xiàn)而苦惱萬分,那么筆者建議你先上網(wǎng)查查是否已經(jīng)有相應(yīng)的控件可供下載使用。一個專業(yè)的控件往往會比你考慮得要周密得多,也要方便得多。而你的任務(wù)就是如何使用它,如何去推廣它;當(dāng)然,如果你有好的代碼,譬如是一個底層硬件通訊的工程類,我也希望你會將這些東西封裝成控件,然后貢獻(xiàn)出來,讓大家一塊共享你的成就和快樂!

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
基于VC的接收機(jī)串口程序設(shè)計
VC++編寫ActiveX控件
VC 6.0在win7下無法加入ActiveX控件的解決方案
解決無法添加Activex控件變量的錯誤
Visual C++ 2010 MFC ActiveX 控件小結(jié)
【轉(zhuǎn)載】水晶報表10.5在VC++.net2008中的使用與部署
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服