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