Macros de mapa de interfaz y delegado

MFC admite estas macros para asignaciones de delegado e interfaz:

Nombre Descripción
BEGIN_DELEGATE_MAP Comienza un mapa de delegado.
BEGIN_INTERFACE_MAP Comienza la definición del mapa con interfaz.
CommandHandler (delegado) Registra métodos de devolución de llamada con un origen de comandos.
END_DELEGATE_MAP Finaliza un mapa de delegado.
END_INTERFACE_MAP Finaliza el mapa de interfaz en el archivo de implementación.
EVENT_DELEGATE_ENTRY Crea una entrada en el mapa delegado.
INTERFACE_PART Usado entre la macro BEGIN_INTERFACE_MAP y la macro END_INTERFACE_MAP para cada interfaz que vaya a soportar el objeto.
MAKE_DELEGATE Asocia un controlador de eventos a un control administrado.

BEGIN_DELEGATE_MAP

Comienza un mapa de delegado.

Sintaxis

BEGIN_DELEGATE_MAP(  CLASS );

Parámetros

CLASS
Clase en la que se hospeda el control administrado.

Comentarios

Esta macro marca el principio de una lista de entradas delegadas, que componen una asignación de delegado. Para obtener un ejemplo de cómo se usa esta macro, consulte EVENT_DELEGATE_ENTRY.

Requisitos

Encabezado: msclr\event.h

BEGIN_INTERFACE_MAP

Comienza la definición del mapa con interfaz cuando se usa en el archivo de implementación.

Sintaxis

BEGIN_INTERFACE_MAP( theClass, baseClass )

Parámetros

theClass
La clase en la que se debe definir el mapa de interfaz.

baseClass
La clase de la que theClass se deriva.

Comentarios

Por cada interfaz que se implementa hay una o más llamadas de macro INTERFACE_PART. Por cada agregado que use la clase, hay una llamada de macro INTERFACE_AGGREGATE.

Para obtener más información sobre los mapas de interfaz, vea la Nota técnica 38.

Requisitos

Encabezado: afxwin.h

CommandHandler (delegado)

Registra métodos de devolución de llamada con un origen de comandos.

Sintaxis

delegate void CommandHandler(  UINT^ cmdID  );

Parámetros

cmdID
Identificador del comando.

Comentarios

Este delegado registra métodos de devolución de llamada con un origen de comandos. Cuando se agrega un delegado al objeto de origen del comando, el método de devolución de llamada se convierte en un controlador para los comandos procedentes del origen especificado.

Para más información, consulte Cómo agregar enrutamientos de comandos al control de Windows Forms.

Para más información sobre el uso de Windows Forms, consulte Utilizar un control de usuario de Windows Forms en MFC.

Requisitos

Encabezado: afxwinforms.h (definido en el ensamblado atlmfc\lib\mfcmifc80.dll)

CommandUIHandler

Registra métodos de devolución de llamada con un mensaje de comando de actualización de la interfaz de usuario.

Sintaxis

delegate void CommandUIHandler(  unsigned int cmdID, ICommandUI^ cmdUI);

Parámetros

cmdID
Identificador del comando.

cmdUI
Identificador del mensaje de comando.

Comentarios

Este delegado registra métodos de devolución de llamada con un mensaje de comando de actualización de la interfaz de usuario. CommandUIHandler es similar a CommandHandler, salvo que este delegado se usa con comandos de actualización de objetos de interfaz de usuario. Los comandos de actualización de la interfaz de usuario deben asignarse uno a uno con métodos de controlador de mensajes.

Para más información sobre el uso de Windows Forms, consulte Utilizar un control de usuario de Windows Forms en MFC.

Requisitos

Encabezado: afxwinforms.h (definido en el ensamblado atlmfc\lib\mfcmifc80.dll)

END_DELEGATE_MAP

Finaliza un mapa de delegado.

Sintaxis

END_DELEGATE_MAP();

Comentarios

Esta macro marca el fin de una lista de entradas delegadas, que componen una asignación de delegado. Para obtener un ejemplo de cómo se usa esta macro, consulte EVENT_DELEGATE_ENTRY.

Requisitos

Encabezado: msclr\event.h

END_INTERFACE_MAP

Finaliza el mapa de interfaz en el archivo de implementación.

Sintaxis

END_INTERFACE_MAP( )

Comentarios

Para obtener más información sobre los mapas de interfaz, vea la Nota técnica 38.

Requisitos

Encabezado: afxwin.h

EVENT_DELEGATE_ENTRY

Crea una entrada en el mapa delegado.

Sintaxis

EVENT_DELEGATE_ENTRY(MEMBER, ARG0, ARG1);

Parámetros

MEMBER
Método de controlador de eventos que se va a adjuntar al control.

ARG0
Primer argumento del método de controlador de eventos administrados, como Object^.

ARG1
Primer argumento del método de controlador de eventos administrados, como EventArgs^.

Comentarios

Cada entrada del mapa delegado corresponde a un delegado de controlador de eventos administrado creado por MAKE_DELEGATE.

Ejemplo

En el ejemplo de código siguiente se muestra cómo usar EVENT_DELEGATE_ENTRY para crear una entrada en el mapa delegado para el controlador de eventos OnClick; vea también el ejemplo de código en MAKE_DELEGATE. Para más información, consulte Cómo: Recibir eventos de Windows Forms de clases nativas de C++.

BEGIN_DELEGATE_MAP(CMyView)
   EVENT_DELEGATE_ENTRY(OnClick, System::Object^, System::EventArgs^)
END_DELEGATE_MAP()

Requisitos

Encabezado: msclr\event.h

INTERFACE_PART

Usado entre la macro BEGIN_INTERFACE_MAP y la macro END_INTERFACE_MAP para cada interfaz que vaya a soportar el objeto.

Sintaxis

INTERFACE_PART( theClass, iid, localClass)

Parámetros

theClass
El nombre de la clase que contiene el mapa de interfaz. iid
El IID que se debe asignar a la clase incrustada. localClass
El nombre de la clase local.

Comentarios

Permite asignar un IID a un miembro de la clase indicada por theClass y localClass.

Para obtener más información sobre los mapas de interfaz, vea la Nota técnica 38.

Requisitos

Encabezado: afxwin.h

MAKE_DELEGATE

Asocia un controlador de eventos a un control administrado.

Sintaxis

MAKE_DELEGATE( DELEGATE,  MEMBER) ;

Parámetros

DELEGATE
El tipo del delegado del controlador de eventos administrados, como EventHandler.

MEMBER
El nombre del método de controlador de eventos que se va a adjuntar al control.

Comentarios

Esta macro crea un delegado de controlador de eventos administrados de tipo DELEGATE y del nombre MEMBER. El delegado del controlador de eventos administrados permite que una clase nativa controle los eventos administrados.

Ejemplo

En el ejemplo de código siguiente se muestra cómo llamar a MAKE_DELEGATE para adjuntar un controlador de eventos OnClick a un control MFC MyControl. Para obtener una explicación más amplia de cómo funciona esta macro en una aplicación MFC, vea Cómo: Recibir eventos de Windows Forms de clases nativas de C++.

// CMyView derives from CWinFormsView.
void CMyView::OnInitialUpdate()
{
   CWinFormsView::OnInitialUpdate();

   GetControl()->Click += MAKE_DELEGATE(System::EventHandler, OnClick);
}

Requisitos

Encabezado: msclr\event.h

Consulte también

Cómo: Recibir eventos de Windows Forms de clases nativas de C++
Cómo: Agregar enrutamientos de comandos al control de Windows Forms
Macros y globales