方法 : ネイティブ C++ クラスから Windows フォーム イベントをシンクする

更新 : 2007 年 11 月

ネイティブ C++ クラスで、Windows フォーム コントロールまたは MFC マクロ マップ形式の他のフォームから発生したマネージ イベントからコールバックを受け取るようにできます。ビューやダイアログでイベントをシンクすることは、コントロールのイベントをシンクすることに似ています。

そのため、次の操作が必要です。

使用例

このサンプルは、「方法 : Windows フォームで DDX/DDV データ バインディングを実行する」で行った作業の続きです。

ここでは、MFC コントロール (m_MyControl) を、OnClick という、マネージ Click イベントのマネージ イベント ハンドラ デリゲートに関連付けます。

BOOL CMFC01Dlg::OnInitDialog の実装に最初のコード行を追加します。

CMFC01Dlg : public CDialog クラスの宣言内のパブリック セクションに、デリゲート マップと OnClick の定義を追加します。

m_MyControl.GetControl()->button1->Click += MAKE_DELEGATE( System::EventHandler, OnClick );

// 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 ) {}

参照

参照

MAKE_DELEGATE

BEGIN_DELEGATE_MAP

END_DELEGATE_MAP

EVENT_DELEGATE_ENTRY