Formanty MFC ActiveX: zdarzenia

Kontrolki ActiveX używają zdarzeń do powiadamiania kontenera, że coś się stało z kontrolką. Typowe przykłady zdarzeń obejmują kliknięcia kontrolki, dane wprowadzone za pomocą klawiatury i zmiany stanu kontrolki. Po wystąpieniu tych akcji kontrolka uruchamia zdarzenie w celu alertu kontenera.

Zdarzenia są również nazywane komunikatami.

Usługa MFC obsługuje dwa rodzaje zdarzeń: magazyn i niestandardowy. Zdarzenia magazynowe to zdarzenia, które klasa COleControl obsługuje automatycznie. Aby uzyskać pełną listę zdarzeń zapasów, zobacz artykuł MFC ActiveX Controls: Adding Stock Events (Kontrolki ActiveX MFC: dodawanie zdarzeń magazynowych). Zdarzenia niestandardowe umożliwiają kontrolowanie możliwości powiadamiania kontenera o wystąpieniu akcji specyficznej dla tej kontrolki. Niektóre przykłady to zmiana stanu wewnętrznego kontrolki lub odebrania określonego komunikatu okna.

Aby kontrolka uruchamiała zdarzenia prawidłowo, klasa sterowania musi mapować każde zdarzenie kontrolki na funkcję składową, która powinna być wywoływana w przypadku wystąpienia powiązanego zdarzenia. Ten mechanizm mapowania (nazywany mapą zdarzeń) centralizuje informacje o zdarzeniu i umożliwia programowi Visual Studio łatwe uzyskiwanie dostępu do zdarzeń kontrolki i manipulowanie nimi. Ta mapa zdarzeń jest zadeklarowana przez następujące makro znajdujące się w nagłówku (. H) plik deklaracji klasy kontrolnej:

DECLARE_EVENT_MAP()

Po zadeklarowaniu mapy zdarzeń należy ją zdefiniować w implementacji kontrolki (. Plik CPP). Następujące wiersze kodu definiują mapę zdarzeń, umożliwiając kontrolce wyzwalanie określonych zdarzeń:

BEGIN_EVENT_MAP(CMyAxUICtrl, COleControl)
END_EVENT_MAP()

Jeśli do utworzenia projektu zostanie użyty Kreator kontrolek ActiveX MFC, automatycznie doda te wiersze. Jeśli nie używasz Kreatora kontrolek ActiveX MFC, należy dodać te wiersze ręcznie.

Widok klasy umożliwia dodawanie zdarzeń magazynowych obsługiwanych przez definiowane zdarzenia klasy COleControl lub zdarzenia niestandardowe. Dla każdego nowego zdarzenia widok klasy automatycznie dodaje odpowiedni wpis do mapy zdarzeń kontrolki i kontrolki . Plik IDL.

Dwa inne artykuły szczegółowo omawiają zdarzenia:

Zobacz też

Kontrolki ActiveX MFC
Kontrolki ActiveX MFC: metody
Klasa COleControl