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