Share via


Controles ActiveX de MFC: Agregar eventos comunes a un control ActiveX

Eventos comunes difieren de eventos personalizados de que automáticamente son desencadenados por la clase COleControl.COleControl contiene el miembro predefinido funciona que los eventos fire resultando de acciones comunes.Algunas acciones comunes implementados por COleControl incluyen único y doble clic en el control, los eventos de teclado, y cambios en el estado de los botones del mouse.Las entradas del mapa de eventos para eventos comunes son precedidas siempre al prefijo de EVENT_STOCK .

Eventos comunes admitidos por el asistente para agregar eventos

La clase de COleControl proporciona diez eventos comunes, incluidos en la tabla siguiente.Puede especificar los eventos que desee en el control mediante Agregue el asistente de eventos.

Eventos comunes

Evento

Desencadenar la función

Comentarios

Haga clic en

FireClick vacío ()

Se desencadena cuando el control captura el mouse, se recibe los mensajes de BUTTONUP (se, centro, o derecha), y el botón se libera sobre el control.Eventos comunes MouseDown y de MouseUp aparecen antes de este evento.

Entrada de asignación de eventos: EVENT_STOCK_CLICK( )

DblClick

FireDblClick vacío ()

Similar al clic pero se desencadena cuando se recibe un mensaje de BUTTONDBLCLK .

Entrada de asignación de eventos: EVENT_STOCK_DBLCLICK( )

Error

scode, LPCSTR lpszDescription, UINT nHelpID = 0 )devoid FireError( SCODE

Se desencadena cuando se produce un error dentro del control ActiveX fuera del ámbito de una llamada al método o un acceso de propiedad.

Entrada de asignación de eventos: EVENT_STOCK_ERROREVENT( )

KeyDown

void FireKeyDown( short nChar, short nShiftState )

Se desencadena cuando se recibe un mensaje de WM_SYSKEYDOWN o de WM_KEYDOWN .

Entrada de asignación de eventos: EVENT_STOCK_KEYDOWN( )

KeyPress

void FireKeyPress( short* pnChar )

Se desencadena cuando se recibe un mensaje de WM_CHAR .

Entrada de asignación de eventos: EVENT_STOCK_KEYPRESS( )

KeyUp

void FireKeyUp( short nChar, short nShiftState )

Se desencadena cuando se recibe un mensaje de WM_SYSKEYUP o de WM_KEYUP .

Entrada de asignación de eventos: EVENT_STOCK_KEYUP( )

MouseDown

y )devoid FireMouseDown( short nButton, short nShiftState, float x, float

Desencadena si cualquier BUTTONDOWN (izquierda, centro, o derecha) se reciben.Se captura el mouse inmediatamente antes de que se desencadena este evento.

Entrada de asignación de eventos: EVENT_STOCK_MOUSEDOWN( )

MouseMove

y )devoid FireMouseMove( short nButton, short nShiftState, float x, float

Se desencadena cuando se recibe un mensaje de WM_MOUSEMOVE .

Entrada de asignación de eventos: EVENT_STOCK_MOUSEMOVE( )

MouseUp

y )devoid FireMouseUp( short nButton, short nShiftState, float x, float

Desencadena si cualquier BUTTONUP (izquierda, centro, o derecha) se reciben.Se libera la captura del mouse antes de que se desencadene este evento.

Entrada de asignación de eventos: EVENT_STOCK_MOUSEUP( )

ReadyStateChange

FireReadyStateChange vacío ()

Se desencadena cuando las transiciones de un control al estado listo siguiente debido a la cantidad de datos recibieron.

Entrada de asignación de eventos: EVENT_STOCK_READYSTATECHANGE( )

Agregando un evento común Con el asistente para agregar eventos

Agregar eventos comunes requiere menos trabajo que los eventos personalizados porque el desencadenamiento de evento real controla automáticamente por la clase base, COleControlde suma.El procedimiento siguiente se agrega un evento común a un control desarrollado mediante Asistente para controles ActiveX MFC.El evento, denominado KeyPress, se desencadena cuando se presiona una tecla y el control está activo.Este procedimiento se puede utilizar para agregar otros eventos comunes.Sustituya el nombre de evento común seleccionado para KeyPress.

Para agregar el a que almacene el evento mediante el asistente para agregar eventos

  1. Cargue el proyecto de control.

  2. En la vista de clases, haga clic con el botón secundario en la clase de control ActiveX para abrir el menú contextual.

  3. En el menú contextual, haga clic agregar y haga clic en Agregar evento.

    Se abrirá el asistente para agregar eventos.

  4. En la lista desplegable de Event Name , seleccione KeyPress.

  5. Haga clic en Finalizar.

Agregue los cambios del asistente de eventos para eventos comunes

Como los eventos comunes son controlados por la clase base de controles, el asistente para agregar eventos no cambia la declaración de clase de ningún modo.Agrega el evento al evento de control asignado y crea una entrada en el archivo de .IDL.La siguiente línea se agrega al mapa del evento de control, ubicado en el archivo de implementación de la clase control (.CPP):

EVENT_STOCK_KEYPRESS()

Agregar este código desencadena un evento KeyPress cuando se recibe un mensaje de WM_CHAR y el control está activo.El evento KeyPress posible desencadenador en otros momentos llamando a la función bounce (por ejemplo, FireKeyPress) dentro de código.

El asistente para agregar eventos agrega la siguiente línea de código al archivo de .IDL de control:

[id(DISPID_KEYPRESS)] void KeyPress(SHORT* KeyAscii);

Esta línea asocia el eventos KeyPress a su identificador estándar send y permite que el contenedor prever el evento KeyPress.

Vea también

Referencia

COleControl (Clase)

Conceptos

Controles ActiveX de MFC

Controles ActiveX de MFC: métodos