Mapas del evento

Cuando un control desea notificar su contenedor que alguna acción (determinado por el programador del control) ha ocurrido (como una pulsación de tecla, clic del ratón o un cambio en el estado del control) llama a una función de desencadenamiento de eventos. Esta función notifica al contenedor de control que se ha producido alguna acción importante disparando el evento afines.

La biblioteca Microsoft Foundation Class ofrece un modelo de programación optimizado para disparar eventos. En este modelo, "evento mapas" se utilizan para designar qué funciones de fuego los eventos de un control determinado. Mapas de eventos contienen una macro para cada evento. Por ejemplo, podría ser un mapa de eventos que desencadena un evento de clic en acciones como esta:

BEGIN_EVENT_MAP (CSampleCtrl, COleControl)
   //{{AFX_EVENT_MAP(CSampleCtrl)
   EVENT_STOCK_CLICK)
   //}}AFX_EVENT_MAP
END_EVENT_MAP()

La macro EVENT_STOCK_CLICK indica que el control activará un evento Click bolsa cada vez que detecta un clic del ratón. Para una lista más detallada de otros eventos stocks, consulte el artículo controles ActiveX: eventos en la Guía del programador de Visual C++. Macros también están disponibles para indicar los eventos personalizados.

Aunque las macros mapa de eventos son importantes, generalmente no insertarles directamente. Esto es porque ClassWizard crea automáticamente entradas de mapa de eventos en los archivos de origen cuando se utiliza para asociar funciones de desencadenamiento de eventos a eventos. Cualquier momento que desee editar o agregar una entrada del mapa de eventos, puede utilizar ClassWizard.

Para apoyar el evento mapas, MFC proporciona las siguientes macros:

Demarcación y declaración de mapa de eventos

DECLARE_EVENT_MAP Declara que se utilizará un mapa de eventos en una clase para asignar eventos a funciones de desencadenamiento de eventos (debe utilizarse en la declaración de clase).
BEGIN_EVENT_MAP Comienza la definición de un mapa de eventos (debe ser usada en la implementación de la clase).
END_EVENT_MAP Termina la definición de un mapa de eventos (debe ser usada en la implementación de la clase).

Evento asignación de Macros

EVENT_CUSTOM Indica qué función de desencadenamiento de eventos desencadenará el evento especificado.
EVENT_CUSTOM_ID Indica qué función de desencadenamiento de eventos desencadenará el evento especificado, con un identificador de envío designado.

Mensaje asignación de Macros

ON_OLEVERB Indica un verbo personalizado manejado por el control OLE.
ON_STDOLEVERB Reemplaza una asignación de verbo estándar del control OLE.

Index