Zawsze, gdy formant pragnie powiadomić jego kontener, w którym niektóre działania (określone przez autora kontroli) stało się (takich jak naciśnięcie klawisza, kliknięcie przyciskiem myszy lub zmianę Państwu formantu) wywołuje funkcję inicjowanie zdarzeń. Ta funkcja powiadamia kontener sterowania, w którym niektóre ważne działanie miało miejsce przez wyzwalania zdarzenia.
Biblioteka klas Fundacji Microsoft oferuje model programowania, zoptymalizowany do wyzwalania zdarzenia. W tym modelu "zdarzenie mapy" są stosowane do wyznaczenia, które funkcje ognia zdarzenia, które dla określonego formantu. Mapy zdarzeń zawierają jedno makro dla każdego zdarzenia. Przykład mapę zdarzeń, że pożary zapasów zdarzenie Click może wyglądać tak:
BEGIN_EVENT_MAP (CSampleCtrl, COleControl)
//{{AFX_EVENT_MAP(CSampleCtrl)
(EVENT_STOCK_CLICK)
//}}AFX_EVENT_MAP
END_EVENT_MAP()
Makro EVENT_STOCK_CLICK wskazuje, że formant zostanie wywołane zapasów zdarzenie Click za każdym razem, gdy wykryje kliknięcie myszą. Aby uzyskać bardziej szczegółową listą innych zapasów zdarzeń, zobacz artykuł formantów ActiveX: zdarzenia w Visual C++ Programmer's Guide. Makra są również dostępne w celu wskazania zdarzenia niestandardowego.
Mimo, że zdarzenie Mapa makra są ważne, zwykle nie wstawianiu ich bezpośrednio. Jest to spowodowane ClassWizard automatycznie tworzy mapę zdarzenia wpisów w plikach źródłowych podczas używania go powiązać zdarzenie opalanych funkcje ze zdarzeniami. Czas, który chcesz edytować lub dodać wpis zdarzenia Mapa, można użyć ClassWizard.
Do obsługi zdarzeń mapy, MFC zapewnia następujące makra:
Zdarzenie mapę deklaracji i rozgraniczenia
| DECLARE_EVENT_MAP | Oświadcza, że mapą zdarzeń będzie używany w klasie mapowania zdarzeń do funkcji inicjowanie zdarzeń (musi być używany w deklaracji klasy). |
| BEGIN_EVENT_MAP | Rozpoczyna się definicję mapą zdarzeń (musi być używany w implementacji klasy). |
| END_EVENT_MAP | Kończy definicję mapą zdarzeń (musi być używany w implementacji klasy). |
Makra mapowania zdarzeń
| EVENT_CUSTOM | Wskazuje, która funkcja inicjowanie zdarzeń zostanie wywołane zdarzenia. |
| EVENT_CUSTOM_ID | Wskazuje, która funkcja inicjowanie zdarzeń zostanie wywołane określonego zdarzenia o identyfikatorze wyznaczonych wysyłki. |
Komunikat mapowania makra
| ON_OLEVERB | Wskazuje niestandardowy czasowniki obsługiwane przez formant OLE. |
| ON_STDOLEVERB | Zastępuje mapowanie zlecenie standardowe formantu OLE. |