Partilhar via


Como: Capturar eventos do Windows Forms a partir de classes nativas C++

Você pode habilitar classes C++ nativas para receber retornos de chamada de eventos gerenciados gerados a partir de controles Windows Forms ou outros formulários com o formato de mapa de macro MFC. Ocultar eventos em modos de exibição e caixas de diálogo é semelhante a fazer a mesma tarefa para controles.

Para efetuar este procedimento, tem de:

Este exemplo continua o trabalho que você fez em Como: Fazer vinculação de dados DDX/DDV com Windows Forms.

Agora, você associará seu controle MFC (m_MyControl) a um delegado do manipulador de eventos gerenciado chamado OnClick para o evento gerenciado Click .

Para anexar o manipulador de eventos OnClick

  1. Adicione o seguinte código à implementação de BOOL CMFC01Dlg::OnInitDialog:

    m_MyControl.GetControl()->button1->Click += MAKE_DELEGATE( System::EventHandler, OnClick );
    
  2. Adicione o seguinte código à seção pública na declaração da classe CMFC01Dlg : public 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 );
    
  3. Finalmente, adicione a implementação para OnClick: CMFC01Dlg.cpp:

    void CMFC01Dlg::OnClick(System::Object^ sender, System::EventArgs^ e)
    {
        AfxMessageBox(_T("Button clicked"));
    }
    

Ver também

MAKE_DELEGATE
BEGIN_DELEGATE_MAP
END_DELEGATE_MAP
EVENT_DELEGATE_ENTRY