共用方式為


如何:從原生 C++ 類別接收 Windows Form 事件

您可以啟用原生 C++ 類別,以從 Windows Forms 控制項或其他具有 MFC 宏對應格式的 Managed 事件接收來自 Managed 事件的回呼。 檢視和對話方塊中的接收事件類似于對控制項執行相同的工作。

若要這樣做,您需要:

此範例會繼續您在如何:使用 Windows Forms 執行 DDX/DDV 資料系結中 所做的工作。

現在,您會將 MFC 控制項 ( m_MyControl ) 與針對 Managed 事件呼叫 OnClick 的 Managed Click 事件處理常式委派產生關聯。

若要附加 OnClick 事件處理常式:

  1. 將下列程式碼新增至 BOOL CMFC01Dlg::OnInitDialog 的實作:

    m_MyControl.GetControl()->button1->Click += MAKE_DELEGATE( System::EventHandler, OnClick );
    
  2. 將下列程式碼新增至 CMFC01Dlg 類別宣告中的 public 區段: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. 最後,將 的 OnClick 實作新增至 CMFC01Dlg.cpp:

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

另請參閱

MAKE_DELEGATE
BEGIN_DELEGATE_MAP
END_DELEGATE_MAP
EVENT_DELEGATE_ENTRY