Compartir a través de


Cómo: Recibir eventos de Windows Forms de clases nativas de C++

Se pueden habilitar clases C++ nativas para recibir devoluciones de llamada desde eventos administrados elevados a partir de controles de formularios Windows Forms u otros formularios con formato de mapa de macros de MFC.La recepción de eventos en vistas y cuadros de diálogo es similar a la misma tarea efectuada para los controles.

Para ello, debe:

Este ejemplo continúa el trabajo realizado en Cómo: Enlazar datos DDX/DDV con formularios Windows Forms.

Ahora, asociará el control MFC (m_MyControl) a un delegado del controlador de eventos administrados denominado OnClick para el evento Click administrado.

Para adjuntar el controlador de eventos OnClick:

  1. Agregue el código siguiente a la implementación de BOOL CMFC01Dlg::OnInitDialog:

    m_MyControl.GetControl()->button1->Click += MAKE_DELEGATE( System::EventHandler, OnClick );
    
  2. Agregue el código siguiente a la sección public de la declaración de la clase 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, agregue la implementación de OnClick a CMFC01Dlg.cpp:

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

Vea también

Referencia

MAKE_DELEGATE

BEGIN_DELEGATE_MAP

END_DELEGATE_MAP

EVENT_DELEGATE_ENTRY