Compartilhar via


Macros de mapa de interface e delegado

O MFC dá suporte a estas macros para mapas de interface e delegado:

Nome Descrição
BEGIN_DELEGATE_MAP Inicia um mapa de delegado.
BEGIN_INTERFACE_MAP Inicia a definição do mapa com interface.
Delegado CommandHandler Registra métodos de retorno de chamada com uma fonte de comando.
END_DELEGATE_MAP Encerra um mapa de delegado.
END_INTERFACE_MAP Encerra o mapa da interface no arquivo de implementação.
EVENT_DELEGATE_ENTRY Cria uma entrada no mapa do delegado.
INTERFACE_PART Usado entre a macro BEGIN_INTERFACE_MAP e a macro END_INTERFACE_MAP para cada interface a que seu objeto oferecerá suporte.
MAKE_DELEGATE Anexa um manipulador de eventos a um controle gerenciado.

BEGIN_DELEGATE_MAP

Inicia um mapa de delegado.

Sintaxe

BEGIN_DELEGATE_MAP(  CLASS );

Parâmetros

CLASS
A classe na qual o controle gerenciado está hospedado.

Comentários

Essa macro marca o início de uma lista de entradas de delegado, que compõem um mapa delegado. Para um exemplo de como essa macro é usada, confira EVENT_DELEGATE_ENTRY.

Requisitos

Cabeçalho: msclr\event.h

BEGIN_INTERFACE_MAP

Inicia a definição do mapa adaptado quando usado no arquivo de implementação.

Sintaxe

BEGIN_INTERFACE_MAP( theClass, baseClass )

Parâmetros

theClass
A classe na qual o mapa da interface deve ser definido

baseClass
A classe da qual theClass deriva.

Comentários

Para cada interface implementada, há uma ou mais invocações de macro INTERFACE_PART. Para cada agregação que a classe usa, há uma invocação de macro INTERFACE_AGGREGATE.

Para mais informações sobre mapas de interface, confira Nota Técnica 38.

Requisitos

Cabeçalho: afxwin.h

Delegado CommandHandler

Registra métodos de retorno de chamada com uma fonte de comando.

Sintaxe

delegate void CommandHandler(  UINT^ cmdID  );

Parâmetros

cmdID
A ID do comando.

Comentários

Esse delegado registra métodos de retorno de chamada com uma fonte de comando. Quando você adiciona um delegado ao objeto de origem do comando, o método de retorno de chamada se torna um manipulador para comandos provenientes da origem especificada.

Para saber mais, confira Como adicionar roteamento de comando ao controle dos Windows Forms.

Para mais informações sobre como usar Windows Forms, confira Como usar um controle de usuário do Windows Form no MFC.

Requisitos

Cabeçalho: afxwinforms.h (definido no assembly atlmfc\lib\mfcmifc80.dll)

CommandUIHandler

Registra métodos de retorno de chamada com uma mensagem de comando de atualização da interface do usuário.

Sintaxe

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

Parâmetros

cmdID
A ID do comando.

cmdUI
A ID da mensagem de comando.

Comentários

Esse delegado registra métodos de retorno de chamada com uma mensagem de comando de atualização da interface do usuário. CommandUIHandler é semelhante a CommandHandler, exceto que esse delegado é usado com comandos de atualização de objeto de interface do usuário. Os comandos de atualização da interface do usuário devem ser mapeados um para um com métodos de manipulador de mensagens.

Para mais informações sobre como usar Windows Forms, confira Como usar um controle de usuário do Windows Form no MFC.

Requisitos

Cabeçalho: afxwinforms.h (definido no assembly atlmfc\lib\mfcmifc80.dll)

END_DELEGATE_MAP

Encerra um mapa de delegado.

Sintaxe

END_DELEGATE_MAP();

Comentários

Essa macro marca o fim de uma lista de entradas de delegado, que compõem um mapa delegado. Para um exemplo de como essa macro é usada, confira EVENT_DELEGATE_ENTRY.

Requisitos

Cabeçalho: msclr\event.h

END_INTERFACE_MAP

Encerra o mapa da interface no arquivo de implementação.

Sintaxe

END_INTERFACE_MAP( )

Comentários

Para mais informações sobre mapas de interface, confira a Nota Técnica 38.

Requisitos

Cabeçalho: afxwin.h

EVENT_DELEGATE_ENTRY

Cria uma entrada no mapa do delegado.

Sintaxe

EVENT_DELEGATE_ENTRY(MEMBER, ARG0, ARG1);

Parâmetros

MEMBER
O método do manipulador de eventos a ser anexado ao controle.

ARG0
O primeiro argumento do método manipulador de eventos gerenciados, como Object^.

ARG1
O segundo argumento do método manipulador de eventos gerenciados, como EventArgs^.

Comentários

Cada entrada no mapa delegado corresponde a um delegado do manipulador de eventos gerenciado criado por MAKE_DELEGATE.

Exemplo

O exemplo de código a seguir mostra como usar EVENT_DELEGATE_ENTRY para criar uma entrada no mapa delegado para o manipulador de eventos OnClick; confira também o exemplo de código em MAKE_DELEGATE. Para saber mais, confira Como coletar eventos dos Windows Forms de classes C++ nativas.

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

Requisitos

Cabeçalho: msclr\event.h

INTERFACE_PART

Usado entre a macro BEGIN_INTERFACE_MAP e a macro END_INTERFACE_MAP para cada interface a que seu objeto oferecerá suporte.

Sintaxe

INTERFACE_PART( theClass, iid, localClass)

Parâmetros

theClass
O nome da classe que contém o mapa da interface. iid
O IID que deve ser mapeado para a classe inserida. localClass
O nome da classe local.

Comentários

Ela permite mapear uma IID para um membro da classe indicada por theClass e localClass.

Para mais informações sobre mapas de interface, confira Nota Técnica 38.

Requisitos

Cabeçalho: afxwin.h

MAKE_DELEGATE

Anexa um manipulador de eventos a um controle gerenciado.

Sintaxe

MAKE_DELEGATE( DELEGATE,  MEMBER) ;

Parâmetros

DELEGATE
O tipo do delegado do manipulador de eventos gerenciado, como EventHandler.

MEMBER
O nome do método do manipulador de eventos a ser anexado ao controle.

Comentários

Essa macro cria um delegado do manipulador de eventos gerenciado do tipo DELEGATE e do nome MEMBER. O delegado do manipulador de eventos gerenciado permite que uma classe nativa manipule eventos gerenciados.

Exemplo

O exemplo de código a seguir mostra como chamar MAKE_DELEGATE para anexar um manipulador de eventos OnClick a um controle MFC MyControl. Para uma explicação mais ampla de como essa macro funciona em um aplicativo MFC, confira Como coletar eventos do Windows Forms de classes nativas do C++.

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

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

Requisitos

Cabeçalho: msclr\event.h

Confira também

Como coletar eventos do Windows Forms de classes C++ nativas
Como adicionar roteamento de comando ao controle do Windows Forms
Macros e Globais