資源描述:
《VC++編寫ActiveX控件》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、VC++編寫ActiveX控件核心提示:ActiveX這門技術(shù)是通過生成“*.ocx”文件來實(shí)現(xiàn)的。先來了解下OCX文件,在百度百科上面對OCX是這樣解釋的 ActiveX這門技術(shù)是通過生成“*.ocx”文件來實(shí)現(xiàn)的。先來了解下OCX文件,在百度百科上面對OCX是這樣解釋的:“.ocx是ocx控件的擴(kuò)展名,OCX是對象類別擴(kuò)充組件。如果你用過VisualBasic或者Delphi一類的可視化編程工具,那么對控件這個概念一定不會陌生,就是那些工具條上的小按鈕,如EditBox,Grid,Image
2、Box,Timer等等。每個控件都有自己的事件、方法和屬性。使用了控件的編程非常容易。首先,在程序的設(shè)計(jì)階段可以設(shè)置一些屬性,如大小,位置,標(biāo)題(caption)等等;在程序運(yùn)行階段,可以更改這些屬性,還可以針對不同的事件,調(diào)用不同的方法來實(shí)現(xiàn)對該控件的控制??丶秃孟褚粔K塊的積木,程序要做的事只是將這些積木搭起來。控件的最大好處是可以重復(fù)使用,甚至可以在不同的編程語言之間使用,例如你可以在VB中嵌入用VC開發(fā)的控件?!薄 ±锩孀詈笠痪湓挶容^重要,就是用VC開發(fā)的OCX控件,你可以在其它語言里面都
3、能調(diào)用,這樣很好的實(shí)現(xiàn)了功能化組件的良好循環(huán)使用,而且還可以實(shí)現(xiàn)跨語言地調(diào)用(例如,你完全可以用C#調(diào)用C++開發(fā)的OCX控件)?! ∠旅骈_始介紹,如何用VC++一步步生成你想要的“*.ocx”文件?! ?.建立最簡單的ocx文件并進(jìn)行調(diào)試 1.1建立最簡單的ocx文件 VC->新建項(xiàng)目->MFCActiveXWinZard 一路點(diǎn)擊“確定”,直到點(diǎn)擊“完成”。最后VC++會自動生成一些文件,這些文件就構(gòu)成了ActiveX的基本模板,文件的主要結(jié)構(gòu)如下: 直接編譯一下,然后在Debug目錄
4、下面就會生成一個名為“ocxDemo.ocx”的控件注冊文件,然后利用“regsvr32”命令就可以實(shí)現(xiàn)本機(jī)對此控件的注冊,然后就可以使用本語言或者跨語言編寫程序時引用此控件來實(shí)現(xiàn)相應(yīng)的功能(后面將會講到)。 1.2ocx調(diào)試方法: VC++自帶有一個調(diào)試控件的工具“ActiveX控件測試容器”,通過三種方式可以打開: 1.點(diǎn)擊“調(diào)試”按鈕,會出現(xiàn)如下對話框: 然后瀏覽"C:ProgramFilesMicrosoftVisualStudioCommonToolsTSTCON32.EXE“
5、 2.系統(tǒng)的“開始“-》“程序”-》“MicrosoftVisualC++6.0”-》“MicrosoftVisualC++6.0Tools”-》“ActiveControlTestContainer” 3.VC++開發(fā)環(huán)境中的“工具”-》“ActiveXControlTestContainer” 通過上面的任意一種方法,都可以調(diào)出下面的程序: 右擊空白區(qū)域,插入控件,然后會彈出下面的對話框: 選中指定控件,然后點(diǎn)擊確定,控件就被加載到此工具中了,然后可以通過這個工具來看此控件的相關(guān)事件響
6、應(yīng)等等。2.自VC++生成的模板基礎(chǔ)上自定義功能 所有的自定義功能基本上都來自于“MFCClassWizard”類向?qū)υ捒??! 。ā翱旖萱ICtrl+W”或者“查看”->“建立類向?qū)А保 ≡凇癆utomation”選項(xiàng)卡中為控件添加方法和屬性?! ≡凇癆ctiveXEvents”選項(xiàng)卡中為控件添加事件?! ?.1添加控件屬性 切換到“Automation”選項(xiàng)卡中,點(diǎn)擊右邊的“AddProperty…”會彈出對話框: Externalname:外部名稱。指此控件被使用時,外部程序看到的屬
7、性名稱,僅在外部引用時被使用?! ype:屬性類型。除了基本的整形等數(shù)據(jù)類型外,還有很多復(fù)雜的高級數(shù)據(jù)類型?! ariablename:變量名稱。此屬性在控件源文件中的變量名稱,在編寫控件源碼時使用?! otificationfunction:提醒函數(shù)。當(dāng)此屬性被改變時,會觸發(fā)此提醒函數(shù)?! mplementation:實(shí)現(xiàn)方式。指屬性的三種類型:固有型,成員變量型,Get/Set方法型。固有型是指系統(tǒng)賦予的固有屬性,如背景色,標(biāo)題;成員變量型是用戶自定義的屬性;Get/Set方法型,可能
8、是指只能通過Get/Set方法才能獲取和改變的變量吧(這個沒研究)?! ?.2添加控件方法 在“Automation”選項(xiàng)卡中,點(diǎn)擊右邊的“AddMethod…”會彈出對話框: Externalname:方法外部名稱?! nternalname:方法內(nèi)部名稱?! eturntype:返回值類型。除了基本的整形等數(shù)據(jù)類型外,還有很多復(fù)雜的高級數(shù)據(jù)類型。 Implementation:實(shí)現(xiàn)方式。兩種:固有方法,自定義方法。 Parameterlist:參數(shù)列表。參數(shù)名稱和參