다음을 통해 공유


MFC ActiveX 컨트롤: 메서드

ActiveX 컨트롤은 자체와 해당 컨트롤 컨테이너 간에 통신하기 위해 이벤트를 발생합니다. 컨테이너는 메서드 및 속성을 통해 컨트롤과 통신할 수도 있습니다. 메서드를 함수라고도 합니다.

메서드 및 속성은 Automation 클라이언트 및 ActiveX 컨트롤 컨테이너와 같은 다른 애플리케이션에서 사용할 수 있는 내보낸 인터페이스를 제공합니다. ActiveX 컨트롤 속성에 대한 자세한 내용은 MFC ActiveX 컨트롤: 속성 문서를 참조하세요.

메서드는 C++ 클래스의 멤버 함수와 사용 용도가 비슷합니다. 컨트롤에서 구현할 수 있는 메서드에는 스톡과 사용자 지정의 두 가지 유형이 있습니다. 주식 이벤트와 마찬가지로 주식 메서드는 COleControl에서 구현을 제공하는 메서드입니다. 주식 방법에 대한 자세한 내용은 MFC ActiveX 컨트롤: 스톡 메서드 추가 문서를 참조하세요. 개발자가 정의한 사용자 지정 메서드는 컨트롤의 추가 사용자 지정을 허용합니다. 자세한 내용은 MFC ActiveX 컨트롤: 사용자 지정 메서드 추가 문서를 참조하세요.

MFC(Microsoft Foundation Class Library)는 컨트롤이 주식 및 사용자 지정 메서드를 지원할 수 있는 메커니즘을 구현합니다. 첫 번째 부분은 클래스 COleControl입니다. 파생된 CWndCOleControl 멤버 함수는 모든 ActiveX 컨트롤에 공통적인 스톡 메서드를 지원합니다. 이 메커니즘의 두 번째 부분은 디스패치 맵입니다. 디스패치 맵은 메시지 맵과 비슷합니다. 그러나 함수를 Windows 메시지 ID에 매핑하는 대신 디스패치 맵은 가상 멤버 함수를 IDispatch IDS에 매핑합니다.

컨트롤이 다양한 메서드를 제대로 지원하려면 해당 클래스가 디스패치 맵을 선언해야 합니다. 이 작업은 컨트롤 클래스 헤더()에 있는 다음 코드 줄에 의해 수행됩니다. H) 파일:

DECLARE_DISPATCH_MAP()

디스패치 맵의 기본 목적은 외부 호출자(예: 컨테이너)가 사용하는 메서드 이름과 메서드를 구현하는 컨트롤 클래스의 멤버 함수 간에 관계를 설정하는 것입니다. 디스패치 맵이 선언된 후에는 컨트롤의 구현()에 정의해야 합니다. CPP) 파일입니다. 다음 코드 줄은 디스패치 맵을 정의합니다.

BEGIN_DISPATCH_MAP(CMyAxUICtrl, COleControl)
END_DISPATCH_MAP()

MFC ActiveX 컨트롤 마법사를 사용하여 프로젝트를 만든 경우 이러한 줄이 자동으로 추가되었습니다. MFC ActiveX 컨트롤 마법사를 사용하지 않은 경우 이러한 줄을 수동으로 추가해야 합니다.

다음 문서에서는 메서드에 대해 자세히 설명합니다.

참고 항목

MFC ActiveX 컨트롤