共用方式為


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

您可以啟用原生C++類別,以從 Windows Forms 控件或其他具有 MFC 巨集對應格式的受管理事件接收回呼。 檢視和對話框中的接收事件類似於對控件執行相同的工作。

若要這樣做,您需要:

此範例會繼續您在如何:使用 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