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