Como: Coletor de eventos do Windows Forms de Classes C++ nativo
Você pode habilitar classes C++ nativo receber retornos de chamada de eventos gerenciado de controles Windows Forms ou outros formulários com o formato de MAP de macro do MFC.Abaixar eventos em modos de exibição e caixas de diálogo é semelhante ao fazer a mesma tarefa para controles.
Para fazer isso, você precisa:
Anexar um OnClick manipulador de eventos para o controle usando MAKE_DELEGATE.
Criar um MAP de delegado usando BEGIN_DELEGATE_MAP, END_DELEGATE_MAP, e EVENT_DELEGATE_ENTRY.
Exemplo
Este exemplo continua o trabalho que você fez no Como: Fazer a ligação com o Windows Forms de dados DDX/DDV.
Agora, você irá associar o seu controle MFC (m_MyControl) com um delegado do manipulador de eventos gerenciado chamado OnClick para o gerenciado Click evento.
Adicione a linha primeira do código à implementação de CMFC01Dlg::OnInitDialog BOOL.
Adicione o MAP de delegado e a definição de OnClick à seção pública na declaração da classe CMFC01Dlg: pública CDialog.
m_MyControl.GetControl()->button1->Click += MAKE_DELEGATE( System::EventHandler, OnClick );
// delegate map
BEGIN_DELEGATE_MAP( CMFC01Dlg )
EVENT_DELEGATE_ENTRY( OnClick, System::Object^, System::EventArgs^ )
END_DELEGATE_MAP()
void OnClick( System::Object^ sender, System::EventArgs^ e ) {}