共用方式為


MFC ActiveX 控制件:事件

ActiveX 控制件會使用事件來通知容器控制件發生問題。 常見的事件範例包括單擊控件、使用鍵盤輸入的數據,以及控件狀態的變更。 發生這些動作時,控件會引發事件來警示容器。

事件也稱為訊息。

MFC 支援兩種事件:庫存和自定義。 庫存事件是 COleControl 類別自動處理的事件。 如需庫存事件的完整清單,請參閱 MFC ActiveX 控件:新增庫存事件一文。 自定義事件可讓控件在發生該控件特定的動作時通知容器。 某些範例會變更控件的內部狀態,或收到特定視窗訊息。

若要讓控件正確引發事件,您的控件類別必須將控件的每個事件對應至當相關事件發生時應該呼叫的成員函式。 此對應機制(稱為事件地圖)會集中化事件的相關資訊,並允許 Visual Studio 輕鬆存取及控管控制項事件。 此事件對應圖由位於控制類別宣告的標頭 (.H) 檔案中的下列巨集所宣告。

DECLARE_EVENT_MAP()

在宣告事件映射之後,必須在控制項的實作 (.CPP) 檔案中定義它。 下列幾行程式代碼會定義事件對應,讓您的控件能夠引發特定事件:

BEGIN_EVENT_MAP(CMyAxUICtrl, COleControl)
END_EVENT_MAP()

如果您使用 MFC ActiveX 控制件精靈來建立專案,它會自動新增這幾行。 如果您未使用 MFC ActiveX 控制件精靈,則必須手動新增這幾行。

透過 [類別檢視],您可以新增類別 COleControl 或您定義的自定義事件所支援的庫存事件。 針對每個新事件,[類別檢視] 會自動將適當的專案新增至控制項的事件對應和控制項的 .IDL 檔案。

另外兩篇文章會詳細討論事件:

另請參閱

MFC ActiveX 控制件
MFC ActiveX 控制件:方法
COleControl 類別