基于mfc的activex控件開發(fā)

基于mfc的activex控件開發(fā)

ID:6164047

大?。?.64 MB

頁數(shù):44頁

時間:2018-01-05

基于mfc的activex控件開發(fā)_第1頁
基于mfc的activex控件開發(fā)_第2頁
基于mfc的activex控件開發(fā)_第3頁
基于mfc的activex控件開發(fā)_第4頁
基于mfc的activex控件開發(fā)_第5頁
資源描述:

《基于mfc的activex控件開發(fā)》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。

1、基于MFC的ActiveX控件開發(fā)2011-08-1911:12http://iysm.net/?p=114ActiveX控件是基于組件對象模型(COM)的可重用軟件組件,廣泛應(yīng)用于桌面及Web應(yīng)用中。在VC下ActiveX控件的開發(fā)可以分為三種,一種是直接用COM的API來開發(fā),這樣做顯然非常的麻煩,對程序員要求也非常高,因此一般是不予考慮的;一種是基于傳統(tǒng)的MFC,采用面向?qū)ο蟮姆绞綄OM的基本功能封裝在若干MFC的C++類中,開發(fā)者通過繼承這些類得到COM支持功能。MFC為廣大VC程序員所熟悉

2、,易于上手學(xué)習(xí),但缺點是MFC封裝的東西比較多,因此用MFC開發(fā)出來的控件相對會比較大,因此比較適于開發(fā)桌面ActivexX控件,尤其是有GUI界面的控件。第三種就是基于ATL的,ATL可以說是專門面向COM開發(fā)的一套框架,使用了C++的模板技術(shù),在運行時不需要依賴于類似MFC程序所需要的龐大的代碼模塊,更適合于Web應(yīng)用開發(fā)。本文介紹的是采用第二種方式,即應(yīng)用MFC進行桌面可視控件開發(fā)的方法步驟,開發(fā)環(huán)境則是基于VC2005。1.創(chuàng)建控件項目打開VC2005后,我們要先創(chuàng)建一個項目,在新建項目頁的左

3、側(cè)選擇VisualC++-MFC,在右側(cè)選擇MFCActiveX控件,填上解決方案和項目名稱,比如在這里我的項目名稱是activexdemo1,解決方案名稱是activexdemo。然后進入控件向?qū)ы?,在向?qū)У牡诙撚袀€運行時許可證,選中這個的話會在生成控件的同時生成一個許可證文件,其他用戶在使用這個控件的時候必須同時附有這個許可證,在此我們保持默認(rèn)狀態(tài),不選。下一頁是關(guān)于項目中各部分的命名問題,可以根據(jù)需要自定義,這里就按默認(rèn)的情況不做修改了。下一頁是選擇控件基于哪種控件的擴展以及控件的一些基本特性

4、。如果新建的控件是基于某種特定控件的話,就在創(chuàng)建的控件基于下選擇所要繼承的控件名,否則就保持none。下方的附加功能根據(jù)實際需要進行選擇,并且可以將鼠標(biāo)放置于選項上方,功能的說明會自動顯示在動態(tài)出現(xiàn)的小提示信息窗口中。選擇完畢點擊完成,向?qū)Ь透鶕?jù)你的選擇生成新項目。進入開發(fā)環(huán)境,我們可以先看一下類視圖。其中的Cactivexdemo1App是我們這個控件的主程序模塊,定義了控件的注冊(DllRegisterServer)、刪除(DllUnregisterServer)等功能,一般不用動,如有需要我們可

5、以在其中的InitInstance和ExitInstance中定義我們自己的初始化和終止操作代碼,一般也就是一些資源的初始化和銷毀工作。Caxtivexdemo1Ctrl是控件類,我們要做的控件功能基本上就是要在這個類中實現(xiàn)。需要提一下的是在這個類中重寫了父類的OnDraw函數(shù),有如下兩句代碼:pdc->FillRect(rcBounds,CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));pdc->Ellipse(rcBounds);也就

6、是在控件上畫了一個橢圓,實際控件開發(fā)中可以根據(jù)功能需要修改重寫這個函數(shù)來繪制控件界面。Caxtivexdemo1PropPage是屬性頁類,這個類實現(xiàn)了一個在開發(fā)時設(shè)定控件屬性的對話框。activexdemo1Lib是為客戶程序提供本控件的屬性、方法以及可能響應(yīng)的事件的接口的庫節(jié)點,在添加控件的這些功能的時候會用得到。其中的Cactivexdemo1App是我們這個控件的主程序模塊,定義了控件的注冊(DllRegisterServer)、刪除(DllUnregisterServer)等功能,一般不用動

7、,如有需要我們可以在其中的InitInstance和ExitInstance中定義我們自己的初始化和終止操作代碼,一般也就是一些資源的初始化和銷毀工作。Caxtivexdemo1Ctrl是控件類,我們要做的控件功能基本上就是要在這個類中實現(xiàn)。需要提一下的是在這個類中重寫了父類的OnDraw函數(shù),有如下兩句代碼:pdc->FillRect(rcBounds,CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));pdc->Ellipse(rcBo

8、unds);也就是在控件上畫了一個橢圓,實際控件開發(fā)中可以根據(jù)功能需要修改重寫這個函數(shù)來繪制控件界面。Caxtivexdemo1PropPage是屬性頁類,這個類實現(xiàn)了一個在開發(fā)時設(shè)定控件屬性的對話框。activexdemo1Lib是為客戶程序提供本控件的屬性、方法以及可能響應(yīng)的事件的接口的庫節(jié)點,在添加控件的這些功能的時候會用得到。2.生成并測試控件好,現(xiàn)在我們就可以先來生成一下這個項目,當(dāng)然到目前我們只是用系統(tǒng)自動生成的一個控件項目,什么功能都沒有,

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。