방법: 네이티브 C++ 클래스에서 Windows Forms 이벤트 싱크
업데이트: 2007년 11월
네이티브 C++ 클래스를 사용하면 Windows Forms 컨트롤이나 MFC 매크로 맵 형식의 다른 폼에서 발생한 관리되는 이벤트의 콜백을 받을 수 있습니다. 뷰와 대화 상자에서의 이벤트 싱크는 컨트롤에 대해 동일한 작업을 수행하는 경우와 비슷합니다.
이를 수행하려면 다음 작업이 필요합니다.
MAKE_DELEGATE를 사용하여 OnClick 이벤트 처리기를 컨트롤에 연결합니다.
BEGIN_DELEGATE_MAP, END_DELEGATE_MAP 및 EVENT_DELEGATE_ENTRY를 사용하여 대리자 맵을 만듭니다.
예제
이 샘플에서는 방법: Windows Forms에서 DDX/DDV 데이터 바인딩 수행에서 수행한 작업을 계속합니다.
이제 MFC 컨트롤(m_MyControl)을 관리되는 Click 이벤트에 대한 OnClick이라는 관리되는 이벤트 처리기 대리자에 연결합니다.
코드의 첫 번째 줄을 BOOL CMFC01Dlg::OnInitDialog 구현에 추가합니다.
대리자 맵과 OnClick 정의를 CMFC01Dlg : public CDialog 클래스 선언의 public 섹션에 추가합니다.
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 ) {}