Formanty MFC ActiveX: zdarzenia
Formanty ActiveX użyć zdarzenia, aby powiadomić kontenera, że coś się stało z formantem.Typowe przykłady zdarzeń obejmują kliknięcia formantu danych wprowadzanych za pomocą klawiatury, a zmiany w stanie formantu.Kiedy wystąpią te akcje, formant pożary zdarzenia uświadomienie kontenera.
Zdarzenia są również nazywane wiadomości.
MFC obsługuje dwa rodzaje zdarzeń: czas i własne.Czas zdarzenia są te zdarzenia, które klasa COleControl obsługuje automatycznie.Pełną listę zdarzeń, pień, zobacz artykuł formantów ActiveX MFC: Dodawanie zdarzeń zapasów.Zdarzenia niestandardowe umożliwiają formantu możliwość powiadamiania o wystąpieniu akcji określone dla tego formantu kontenera.Kilka przykładów będzie zmian w stan wewnętrzny formantu lub odebranie komunikatu okna.
Kontrolnej prawidłowo ognia zdarzenia Klasa sterowania musi być mapowana na funkcji składowej, która powinna zostać wywołana, gdy wystąpi zdarzenie związane każdego zdarzenia formantu.Ten mechanizm mapowania (nazywany mapą zdarzeń) umożliwia scentralizowanie informacje o zdarzeniu i pozwala Visual Studio do łatwego dostępu i manipulowania zdarzenia formantu.Ta mapa zdarzeń jest zadeklarowany przez następujące makro znajdujące się w nagłówku (.H) plik deklaracji klasy kontroli:
DECLARE_EVENT_MAP()
Po mapie zdarzeń została zadeklarowana, muszą być zdefiniowane w implementacji sieci formantu (.Plik CPP).Następujące wiersze kodu zdefiniować mapie zdarzeń, pozwalając na ogień określone zdarzenia formantu:
BEGIN_EVENT_MAP(CMyAxUICtrl, COleControl)
...
END_EVENT_MAP()
Jeśli używasz Kreatora formantów ActiveX MFC do tworzenia projektu, automatycznie dodaje te wiersze.Jeśli nie używasz Kreatora formantów ActiveX MFC, możesz ręcznie dodać te linie.
Widok klas można dodać czas zdarzenia obsługiwane przez klasę COleControl lub zdarzeń niestandardowych, zdefiniowanych przez użytkownika.Każde nowe zdarzenie widok klasy automatycznie dodaje poprawnego wpisu do formantu zdarzenie mapę i formantu.Plik IDL.
Dwóch innych artykułach omówiono zdarzenia szczegółowo: