다음을 통해 공유


대리자 및 인터페이스 맵 매크로

MFC는 대리자 및 인터페이스 맵에 대해 다음 매크로를 지원합니다.

이름 설명
BEGIN_DELEGATE_MAP 대리자 맵을 시작합니다.
BEGIN_INTERFACE_MAP 인터페이스된 맵의 정의를 시작합니다.
CommandHandler 대리자 명령 소스에 콜백 메서드를 등록합니다.
END_DELEGATE_MAP 대리자 맵을 종료합니다.
END_INTERFACE_MAP 구현 파일에서 인터페이스 맵을 종료합니다.
EVENT_DELEGATE_ENTRY 대리자 맵에 항목을 만듭니다.
INTERFACE_PART 개체가 지원할 각 인터페이스에 대해 BEGIN_INTERFACE_MAP 매크로와 END_INTERFACE_MAP 매크로 사이에 사용됩니다.
MAKE_DELEGATE 관리되는 컨트롤에 이벤트 처리기를 연결합니다.

BEGIN_DELEGATE_MAP

대리자 맵을 시작합니다.

구문

BEGIN_DELEGATE_MAP(  CLASS );

매개 변수

클래스
관리되는 컨트롤이 호스트되는 클래스입니다.

설명

이 매크로는 대리자 맵을 구성하는 대리자 항목 목록의 시작을 표시합니다. 이 매크로를 사용하는 방법에 대한 예제는 EVENT_DELEGATE_ENTRY 참조하세요.

요구 사항

헤더: msclr\event.h

BEGIN_INTERFACE_MAP

구현 파일에서 사용할 때 인터페이스된 맵의 정의를 시작합니다.

구문

BEGIN_INTERFACE_MAP( theClass, baseClass )

매개 변수

theClass
인터페이스 맵을 정의할 클래스

baseClass
theClass가 파생되는 클래스입니다.

설명

구현되는 각 인터페이스에 대해 하나 이상의 INTERFACE_PART 매크로 호출이 있습니다. 클래스에서 사용하는 각 집계에 대해 하나의 INTERFACE_AGGREGATE 매크로 호출이 있습니다.

인터페이스 맵에 대한 자세한 내용은 Technical Note 38을 참조하세요.

요구 사항

헤더: afxwin.h

CommandHandler 대리자

명령 소스에 콜백 메서드를 등록합니다.

구문

delegate void CommandHandler(  UINT^ cmdID  );

매개 변수

Cmdid
명령 ID입니다.

설명

이 대리자는 콜백 메서드를 명령 원본에 등록합니다. 명령 원본 개체에 대리자를 추가하면 콜백 메서드는 지정된 소스에서 오는 명령에 대한 처리기가 됩니다.

자세한 내용은 방법: Windows Forms 컨트롤에 명령 라우팅 추가를 참조 하세요.

Windows Forms 사용에 대한 자세한 내용은 MFC에서 Windows Form 사용자 컨트롤 사용을 참조하세요.

요구 사항

헤더: afxwinforms.h(어셈블리 atlmfc\lib\mfcmifc80.dll에 정의됨)

CommandUIHandler

사용자 인터페이스 업데이트 명령 메시지를 사용하여 콜백 메서드를 등록합니다.

구문

delegate void CommandUIHandler(  unsigned int cmdID, ICommandUI^ cmdUI);

매개 변수

Cmdid
명령 ID입니다.

cmdUI
명령 메시지 ID입니다.

설명

이 대리자는 사용자 인터페이스 업데이트 명령 메시지를 사용하여 콜백 메서드를 등록합니다. CommandUIHandler는 이 대리자가 사용자 인터페이스 개체 업데이트 명령과 함께 사용된다는 점을 제외하고 CommandHandler와 유사합니다. 사용자 인터페이스 업데이트 명령은 메시지 처리기 메서드와 일대일로 매핑되어야 합니다.

Windows Forms 사용에 대한 자세한 내용은 MFC에서 Windows Form 사용자 컨트롤 사용을 참조하세요.

요구 사항

헤더: afxwinforms.h(어셈블리 atlmfc\lib\mfcmifc80.dll에 정의됨)

END_DELEGATE_MAP

대리자 맵을 종료합니다.

구문

END_DELEGATE_MAP();

설명

이 매크로는 대리자 맵을 구성하는 대리자 항목 목록의 끝을 표시합니다. 이 매크로를 사용하는 방법에 대한 예제는 EVENT_DELEGATE_ENTRY 참조하세요.

요구 사항

헤더: msclr\event.h

END_INTERFACE_MAP

구현 파일에서 인터페이스 맵을 종료합니다.

구문

END_INTERFACE_MAP( )

설명

인터페이스 맵에 대한 자세한 내용은 Technical Note 38을 참조하세요.

요구 사항

헤더: afxwin.h

EVENT_DELEGATE_ENTRY

대리자 맵에 항목을 만듭니다.

구문

EVENT_DELEGATE_ENTRY(MEMBER, ARG0, ARG1);

매개 변수

멤버
컨트롤에 연결할 이벤트 처리기 메서드입니다.

ARG0
관리되는 이벤트 처리기 메서드의 첫 번째 인수(예: Object^.)

ARG1
관리되는 이벤트 처리기 메서드의 두 번째 인수(예: EventArgs^.)

설명

대리자 맵의 각 항목은 MAKE_DELEGATE 만든 관리되는 이벤트 처리기 대리자입니다.

예시

다음 코드 예제에서는 EVENT_DELEGATE_ENTRY 사용하여 이벤트 처리기에 대한 OnClick 대리자 맵에 항목을 만드는 방법을 보여 하며 MAKE_DELEGATE 코드 예제도 참조하세요. 자세한 내용은 방법: 네이티브 C++ 클래스에서 Windows Forms 이벤트 싱크를 참조 하세요.

BEGIN_DELEGATE_MAP(CMyView)
   EVENT_DELEGATE_ENTRY(OnClick, System::Object^, System::EventArgs^)
END_DELEGATE_MAP()

요구 사항

헤더: msclr\event.h

INTERFACE_PART

개체가 지원할 각 인터페이스에 대해 BEGIN_INTERFACE_MAP 매크로와 END_INTERFACE_MAP 매크로 사이에 사용됩니다.

구문

INTERFACE_PART( theClass, iid, localClass)

매개 변수

theClass
인터페이스 맵을 포함하는 클래스의 이름 iid
포함된 클래스에 매핑할 IID입니다. localClass
로컬 클래스의 이름입니다.

설명

이를 통해 IID를Class 및 localClass로 표시된 클래스의 멤버에 매핑할 수 있습니다.

인터페이스 맵에 대한 자세한 내용은 Technical Note 38을 참조하세요.

요구 사항

헤더: afxwin.h

MAKE_DELEGATE

관리되는 컨트롤에 이벤트 처리기를 연결합니다.

구문

MAKE_DELEGATE( DELEGATE,  MEMBER) ;

매개 변수

대리자
EventHandler와 같은 관리되는 이벤트 처리기 대리자의 형식입니다.

멤버
컨트롤에 연결할 이벤트 처리기 메서드의 이름입니다.

설명

이 매크로는 DELEGATE 형식과 MEMBER 이름의 관리되는 이벤트 처리기 대리자를 만듭니다. 관리되는 이벤트 처리기 대리자를 사용하면 네이티브 클래스가 관리되는 이벤트를 처리할 수 있습니다.

예시

다음 코드 예제에서는 MFC 컨트롤MyControl에 이벤트 처리기를 연결 OnClick 하기 위해 호출 MAKE_DELEGATE 하는 방법을 보여 있습니다. MFC 애플리케이션에서 이 매크로가 작동하는 방식에 대한 자세한 설명은 방법: 네이티브 C++ 클래스에서 Windows Forms 이벤트 싱크를 참조 하세요.

// CMyView derives from CWinFormsView.
void CMyView::OnInitialUpdate()
{
   CWinFormsView::OnInitialUpdate();

   GetControl()->Click += MAKE_DELEGATE(System::EventHandler, OnClick);
}

요구 사항

헤더: msclr\event.h

참고 항목

방법: 네이티브 C++ 클래스에서 Windows Forms 이벤트 싱크
방법: Windows Forms 컨트롤에 명령 라우팅 추가
매크로 및 전역