Como: O coletor de eventos de formulários do Windows a partir de Classes de C++ nativos
Você pode habilitar as classes de C++ nativos receber callbacks de eventos gerenciados gerados a partir de controles Windows Forms ou outros formulários com o formato de mapa de macro do MFC. Abaixar a 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 o manipulador de eventos para o controle usando MAKE_DELEGATE.
Criar um mapa de delegado usando BEGIN_DELEGATE_MAP, END_DELEGATE_MAP, e EVENT_DELEGATE_ENTRY.
Este exemplo continua o trabalho feito em 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 manipulador de eventos gerenciado chamado OnClick para o gerenciado Click de evento.
Para anexar um manipulador de eventos OnClick:
Adicione o seguinte código à implementação de BOOL CMFC01Dlg::OnInitDialog:
m_MyControl.GetControl()->button1->Click += MAKE_DELEGATE( System::EventHandler, OnClick );
Adicione o seguinte código para a seção pública na declaração da classe CMFC01Dlg: pública CDialog.
// 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 );
Finalmente, adicione a implementação de OnClick para CMFC01Dlg.cpp:
void CMFC01Dlg::OnClick(System::Object^ sender, System::EventArgs^ e) { AfxMessageBox(_T("Button clicked")); }