Controles ActiveX de MFC: eventos
Los controles ActiveX utilizan eventos para notificar a un contenedor que algo ha ocurrido al control.Los ejemplos comunes de inclusión de eventos haga clic en el control, los datos especificados mediante el teclado, y cambios en el estado de control.Cuando estas acciones aparecen, el control desencadena un evento para avisar al contenedor.
Los eventos también se denominan mensajes.
MFC admite dos tipos de eventos: acción y personalizado.Eventos comunes son los eventos que la clase COleControl controla automáticamente.Para obtener una lista completa de los eventos comunes, vea el artículo Controles ActiveX de MFC: Agregar eventos comunes.Los eventos personalizados permiten a control la capacidad de notificar el contenedor cuando un concreto de acción a ese control aparece.Algunos ejemplos serían un cambio en el estado interno de un control o un mensaje de un mensaje de la ventana.
Para que el control desencadena eventos correctamente, la clase control debe asignar cada evento del control a una función miembro que debe llamar cuando el evento relacionado aparece.Este mecanismo de asignación (denominado evento asignado) centraliza la información sobre el evento y permite que Visual Studio tener acceso fácilmente y manipular a los eventos de control.Este mapa de evento es declarado por la siguiente macro, ubicada en el encabezado (. H) archivo de la declaración de clase de control:
DECLARE_EVENT_MAP()
Una vez declarado el mapa del evento, se debe definir en el archivo de implementación del control (.CPP).Las siguientes líneas de código definen el mapa del evento, lo que permite que el control desencadena eventos concretos:
BEGIN_EVENT_MAP(CMyAxUICtrl, COleControl)
...
END_EVENT_MAP()
Si utiliza el asistente para controles ActiveX MFC para crear el proyecto, agrega automáticamente estas líneas.Si no utiliza el asistente para controles ActiveX MFC, debe agregar estas líneas manualmente.
Con la vista de clases, puede agregar eventos comunes compatibles con la clase COleControl o los eventos personalizados que se definen.Para cada nuevo evento, la vista de clases agrega automáticamente la entrada correspondiente a la asignación de eventos del control y el archivo de .IDL del control.
Otros dos casos tratan eventos en detalle: