Partilhar via


Como coletar eventos dos Windows Forms a partir de classes C++ nativas

Você pode habilitar classes nativas do C++ para receber retornos de chamada de eventos gerados gerenciados dos controles do Windows Forms ou de outras formas com o formato macro do mapa MFC. Afundar eventos nas exibições e as caixas de diálogo é semelhante ao fazer a mesma tarefa para controles.

Para fazer isso, você precisa:

Este exemplo continua o trabalho que você fez em Como fazer a associação de dados DDX/DDV aos Windows Forms.

Agora, o associará o controle (MFCm_MyControl) com um representante gerenciado do manipulador de eventos chamado OnClick para o evento gerenciada de Click .

Para anexar o manipulador de eventos de OnClick:

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

    m_MyControl.GetControl()->button1->Click += MAKE_DELEGATE( System::EventHandler, OnClick );
    
  2. Adicione o seguinte código na seção pública na declaração de classe CMFC01Dlg: CDialog utilitário.

    // 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. Por fim, adicione a implementação para OnClick a CMFC01Dlg.cpp:

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

Consulte também

Referência

MAKE_DELEGATE

BEGIN_DELEGATE_MAP

END_DELEGATE_MAP

EVENT_DELEGATE_ENTRY