Ogni volta che un controllo intende notificare il contenitore che qualche azione (determinato dallo sviluppatore control) è accaduto (ad esempio una sequenza di tasti, clic del mouse o un cambiamento per lo stato del controllo) chiama una funzione evento-combustione. Questa funzione notifica contenitore del controllo che qualche azione importante si è verificato sparando evento correlato.
Microsoft Foundation Class Library offre un modello di programmazione ottimizzato per gli eventi. In questo modello, "evento mappe" vengono utilizzati per indicare quali funzioni quali eventi per un controllo specifico del fuoco. Evento mappe contengono una macro per ogni evento. Ad esempio, una mappa di evento che viene generato un evento Click riserva potrebbe essere simile a questo:
BEGIN_EVENT_MAP (mappa, COleControl)
//{{AFX_EVENT_MAP(CSampleCtrl)
EVENT_STOCK_CLICK)
//}}AFX_EVENT_MAP
END_EVENT_MAP()
La macro EVENT_STOCK_CLICK indica che il controllo verrà generato un evento Click riserva ogni volta che rileva un clic del mouse. Per un elenco più dettagliato di altri eventi di magazzino, vedere l'articolo controlli ActiveX: eventi nel manuale del programmatore di Visual C++. Le macro sono inoltre disponibili per indicare gli eventi personalizzati.
Anche se le macro delle mappe di evento è importanti, è generalmente non inserire loro direttamente. Questo è perché ClassWizard crea automaticamente le voci di evento map nel file sorgente quando lo si utilizza per associare eventi-combustione funzioni con gli eventi. Ogni volta che vuoi per modificare o aggiungere una voce di evento-mappa, è possibile utilizzare ClassWizard.
Per supportare l'evento mappe, MFC fornisce le seguenti macro:
Delimitazione e dichiarazione di evento mappa
| DECLARE_EVENT_MAP | Dichiara che una mappa dell'evento verrà utilizzata in una classe per associare eventi a funzioni di evento-combustione (deve essere utilizzato nella dichiarazione della classe). |
| BEGIN_EVENT_MAP | Inizia la definizione di una mappa di evento (deve essere utilizzata l'implementazione della classe). |
| END_EVENT_MAP | Termina la definizione di una mappa di evento (deve essere utilizzata l'implementazione della classe). |
Evento mappatura macro
| EVENT_CUSTOM | Indica quale funzione di combustione a evento verrà generato l'evento specificato. |
| EVENT_CUSTOM_ID | Indica quale funzione di combustione a evento verrà generato l'evento specificato, con un ID di spedizione designato. |
Macro di Mapping di messaggio
| ON_OLEVERB | Indica un verbo personalizzato gestito dal controllo OLE. |
| ON_STDOLEVERB | Esegue l'override di una mappatura del verbo standard del controllo OLE. |