|
VC中如何調(diào)試和使用ActiveX控件 由于控件并不能單獨(dú)運(yùn)行,所以你必須利用另一個(gè)程序來(lái)裝載控件并進(jìn)行調(diào)試,VC中提供了ActiveX容器供使用,在工程/設(shè)置菜單(project/setting)中選擇Debug頁(yè)第一欄Executable for debug session,右側(cè)箭頭并選擇ActiveX Container。 然后開始調(diào)試,進(jìn)入Container時(shí)VC會(huì)提示Container中是沒有調(diào)試代碼的錯(cuò)誤,不用理會(huì)并繼續(xù)。 進(jìn)入Container后首先要裝載你所需要調(diào)試的控件,選擇菜單Edit/Insert OLE Control...,在彈出的對(duì)話框中選擇你需要插入的控件。 如果Container 成功創(chuàng)建了控件在屏幕中就會(huì)顯示出控件,根據(jù)上節(jié)的內(nèi)容我們可以看到控件中顯示了一串字符,接下來(lái)我們需要測(cè)試一下控件所提供的方法是否能夠正確運(yùn)行。請(qǐng)選擇菜單Edit/Invoke Methods...,在彈出的對(duì)話框上選擇你要使用的方法,但你選擇了方法后,對(duì)話框上的參數(shù)輸入?yún)^(qū)會(huì)顯示輸入?yún)?shù)的列表,你輸入?yún)?shù)后按下 Invoke按鈕就可以執(zhí)行。 在調(diào)試時(shí)你可以如同調(diào)試其他程序一樣在代碼中使用TRACE宏,也可以設(shè)置斷點(diǎn)。 其實(shí)你在插入控件時(shí)會(huì)看見其他在系統(tǒng)中已經(jīng)注冊(cè)的控件,如果有興趣可以自己試試加載幾個(gè)看看效果。 如果要在VC 的工程中使用已經(jīng)存在的ActiveX控件,最簡(jiǎn)單的方法就是利用VC的插入功能,在菜單中選擇Project/Add To Project/Component and Control(在不同版本的VC中可能菜單位置不同),然后選擇插入的控件,VC會(huì)為你生成這個(gè)控件的定義文件,當(dāng)然和你最開始編寫的會(huì)完全不一樣,但是沒有關(guān)系。你會(huì)在定義文件看見這個(gè)控件所實(shí)現(xiàn)的方法和屬性,這些都可以讓你通過函數(shù)的方式進(jìn)行調(diào)用。(所以在使用控件時(shí)如果沒有該控件的說(shuō)明是很難使用的) 還有一種方法就是在對(duì)話框中插入一個(gè)控件。如果該控件的定義文件沒有生成VC也可以幫助你生成。 在對(duì)話框中的控件是不需要手工創(chuàng)建的,但是如果你希望在其他地方創(chuàng)建窗口就需要調(diào)用控件的創(chuàng)建函數(shù),其實(shí)這個(gè)函數(shù)很簡(jiǎn)單,和CWnd::Create函數(shù)定義的區(qū)別不大。定義為: class CATLSam : public CWnd{BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CFile* pPersist = NULL, BOOL bStorage = FALSE, BSTR bstrLicKey = NULL)??梢允褂萌缦路绞秸{(diào)用: Create("window text",WS_CHILD|WS_VISIBLE|WS_BORDER,CRect(0,0,200,200),this,1001); 由于是CWnd的派生類所以CWnd的相關(guān)功能都可以使用。在程序中創(chuàng)建了控件窗口后就可以調(diào)用控件的各種方法(對(duì)屬性的控制也是通過函數(shù)調(diào)用來(lái)實(shí)現(xiàn)的,在前面的教程中我們已經(jīng)認(rèn)識(shí)到這點(diǎn))。 在控件創(chuàng)建后就可以使用控件的各種屬性和方法,由于控件是你自己編寫的所以調(diào)用起來(lái)應(yīng)該不會(huì)有什么問題。 Activex控件還可以通過添加MFC類的方式添加相應(yīng)的控件類。。。。 |
|
|
來(lái)自: 行者120 > 《網(wǎng)文收錄》