ActiveX 控制件會引發事件,以在本身與其控制容器之間進行通訊。 容器也可以透過方法和屬性來與控件通訊。 方法也稱為函式。
方法和屬性提供導出介面供其他應用程式使用,例如自動化用戶端和ActiveX控件容器。 如需 ActiveX 控制件屬性的詳細資訊,請參閱 MFC ActiveX 控制件:屬性一文。
方法的使用和用途與C++類別的成員函式類似。 控件可以實作兩種類型的方法:庫存和自定義。 類似於預設事件,預設方法是 COleControl 提供的實作方法。 如需股票方法的詳細資訊,請參閱 MFC ActiveX 控件:新增庫存方法一文。 開發人員所定義的自定義方法,允許對控件進行其他自定義。 如需詳細資訊,請參閱 MFC ActiveX 控件:新增自定義方法一文。
Microsoft基礎類別庫 (MFC) 會實作一種機制,可讓您的控件支援庫存和自定義方法。 第一個部份是 類別 COleControl。 衍生自 CWnd的成員 COleControl 函式支援所有 ActiveX 控制項通用的 stock 方法。 此機制的第二個部分是調度映射。 分派對應類似於訊息對應;不過,分派對應會將虛擬成員函式對應至IDispatch IDS,而不是將函式對應至Windows訊息標識符。
若要讓控件正確支持各種方法,其類別必須宣告調度映射。 這可透過位於控制類別標頭文件 (.H) 中的下列程式代碼行來完成。
DECLARE_DISPATCH_MAP()
分派映射的主要目的是建立(例如容器)所使用的外部呼叫者方法名稱與控件類別中實現這些方法的成員函式之間的關聯性。 宣告分派對應之後,必須在控制項的實作(.CPP 檔案)中進行定義。 下列幾行程式代碼會定義分派映射:
BEGIN_DISPATCH_MAP(CMyAxUICtrl, COleControl)
END_DISPATCH_MAP()
如果您使用 MFC ActiveX 控制件精靈 來建立專案,則會自動新增這幾行。 如果未使用 MFC ActiveX 控制件精靈,您必須手動新增這幾行。
下列文章會詳細討論方法: