1. 程式人生 > >如何除錯和使用ActiveX控制元件

如何除錯和使用ActiveX控制元件

如何除錯和使用ActiveX控制元件。

  由於控制元件並不能單獨執行,所以你必須利用另一個程式來裝載控制元件並進行除錯,VC中提供了ActiveX容器供使用,在工程/設定選單(project/setting)中選擇Debug第一欄Executable for debug session,右側箭頭並選擇ActiveX Container

  然後開始除錯,進入ContainerVC會提示Container中是沒有除錯程式碼的錯誤,不用理會並繼續。

  進入Container後首先要裝載你所需要除錯的控制元件,選擇選單

Edit/Insert OLE Control...,在彈出的對話方塊中選擇你需要插入的控制元件。

如果Container 成功建立了控制元件在螢幕中就會顯示出控制元件,根據上節的內容我們可以看到控制元件中顯示了一串字元,接下來我們需要測試一下控制元件所提供的方法是否能夠正確執行。請選擇選單Edit/Invoke Methods...,在彈出的對話方塊上選擇你要使用的方法,但你選擇了方法後,對話方塊上的引數輸入區會顯示輸入引數的列表,你輸入引數後按下 Invoke按鈕就可以執行。

  在除錯時你可以如同除錯其他程式一樣在程式碼中使用TRACE巨集,也可以設定斷點。

其實你在插入控制元件時會看見其他在系統中已經註冊的控制元件,如果有興趣可以自己試試載入幾個看看效果。

如果要在VC 的工程中使用已經存在的ActiveX控制元件,最簡單的方法就是利用VC的插入功能,在選單中選擇Project/Add To Project/Component and Control(在不同版本的VC中可能選單位置不同),然後選擇插入的控制元件,VC會為你生成這個控制元件的定義檔案,當然和你最開始編寫的會完全不一樣,但是沒有關係。你會在定義檔案看見這個控制元件所實現的方法和屬性,這些都可以讓你通過函式的方式進行呼叫。(所以在使用控制元件時如果沒有該控制元件的說明是很難使用

的)

還有一種方法就是在對話方塊中插入一個控制元件。如果該控制元件的定義檔案沒有生成VC也可以幫助你生成。

  在對話方塊中的控制元件是不需要手工建立的,但是如果你希望在其他地方建立視窗就需要呼叫控制元件的建立函式,其實這個函式很簡單,和CWnd::Create函式定義的區別不大。定義為:

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)

可以使用如下方式呼叫:

Create("window text",WS_CHILD|WS_VISIBLE|WS_BORDER,CRect(0,0,200,200),this,1001);

  由於是CWnd的派生類所以CWnd的相關功能都可以使用。在程式中建立了控制元件視窗後就可以呼叫控制元件的各種方法(對屬性的控制也是通過函式呼叫來實現的,在前面的教程中我們已經認識到這點)。

  在控制元件建立後就可以使用控制元件的各種屬性和方法,由於控制元件是你自己編寫的所以呼叫起來應該不會有什麼問題。