다음을 통해 공유


이벤트 싱크 맵

포함된 OLE 컨트롤이 이벤트를 발생하면 컨트롤의 컨테이너는 MFC에서 제공하는 "이벤트 싱크 맵"이라는 메커니즘을 사용하여 이벤트를 받습니다. 이 이벤트 싱크 맵은 각 특정 이벤트에 대한 처리기 함수와 해당 이벤트의 매개 변수를 지정합니다. 이벤트 싱크 맵에 대한 자세한 내용은 ActiveX 컨트롤 컨테이너 문서를 참조하세요.

이벤트 싱크 맵

속성 설명
BEGIN_EVENTSINK_MAP 이벤트 싱크 맵의 정의를 시작합니다.
DECLARE_EVENTSINK_MAP 이벤트 싱크 맵을 선언합니다.
END_EVENTSINK_MAP 이벤트 싱크 맵의 정의를 종료합니다.
ON_EVENT 특정 이벤트에 대한 이벤트 처리기를 정의합니다.
ON_EVENT_RANGE OLE 컨트롤 집합에서 발생한 특정 이벤트에 대한 이벤트 처리기를 정의합니다.
ON_EVENT_REFLECT 컨트롤의 컨테이너에서 처리하기 전에 컨트롤에서 발생한 이벤트를 수신합니다.
ON_PROPNOTIFY OLE 컨트롤에서 속성 알림을 처리하기 위한 처리기를 정의합니다.
ON_PROPNOTIFY_RANGE OLE 컨트롤 집합에서 속성 알림을 처리하기 위한 처리기를 정의합니다.
ON_PROPNOTIFY_REFLECT 컨트롤의 컨테이너에서 처리하기 전에 컨트롤에서 보낸 속성 알림을 받습니다.

BEGIN_EVENTSINK_MAP

이벤트 싱크 맵의 정의를 시작합니다.

BEGIN_EVENTSINK_MAP(theClass, baseClass)

매개 변수

theClass
이벤트 싱크 맵이 있는 컨트롤 클래스의 이름을 지정합니다.

baseClass
TheClass의 기본 클래스 이름을 지정합니다.

설명

클래스의 멤버 함수를 정의하는 구현(.cpp) 파일에서 BEGIN_EVENTSINK_MAP 매크로를 사용하여 이벤트 싱크 맵을 시작한 다음 알림을 받을 각 이벤트에 대한 매크로 항목을 추가하고 END_EVENTSINK_MAP 매크로를 사용하여 이벤트 싱크 맵을 완료합니다.

이벤트 싱크 맵 및 OLE 컨트롤 컨테이너에 대한 자세한 내용은 ActiveX 컨트롤 컨테이너 문서를 참조하세요.

요구 사항

헤더 afxdisp.h

DECLARE_EVENTSINK_MAP

OLE 컨테이너는 이벤트 싱크 맵을 제공하여 컨테이너에 알림을 받을 이벤트를 지정할 수 있습니다.

DECLARE_EVENTSINK_MAP()

설명

클래스 선언의 끝에 DECLARE_EVENTSINK_MAP 매크로를 사용합니다. 그런 다음. 클래스의 멤버 함수를 정의하는 CPP 파일은 BEGIN_EVENTSINK_MAP 매크로, 알림을 받을 각 이벤트에 대한 매크로 항목 및 END_EVENTSINK_MAP 매크로를 사용하여 이벤트 싱크 목록의 끝을 선언합니다.

이벤트 싱크 맵에 대한 자세한 내용은 ActiveX 컨트롤 컨테이너 문서를 참조하세요.

요구 사항

헤더 afxwin.h

END_EVENTSINK_MAP

이벤트 싱크 맵의 정의를 종료합니다.

END_EVENTSINK_MAP()

요구 사항

헤더 afxdisp.h

ON_EVENT

ON_EVENT 매크로를 사용하여 OLE 컨트롤에서 발생한 이벤트에 대한 이벤트 처리기 함수를 정의합니다.

ON_EVENT(theClass, id, dispid, pfnHandler,  vtsParams)

매개 변수

theClass
이 이벤트 싱크 맵이 속한 클래스입니다.

id
OLE 컨트롤의 컨트롤 ID입니다.

dispid
컨트롤에서 발생한 이벤트의 디스패치 ID입니다.

pfnHandler
이벤트를 처리하는 멤버 함수에 대한 포인터입니다. 이 함수에는 BOOL 반환 형식과 이벤트의 매개 변수와 일치하는 매개 변수 형식이 있어야 합니다(vtsParams 참조). 함수는 TRUE를 반환하여 이벤트가 처리되었음을 나타내야 합니다. 그렇지 않으면 FALSE입니다.

vtsParams
이벤트에 대한 매개 변수의 형식을 지정하는 VTS_ 상수의 시퀀스입니다. 이러한 상수는 DISP_FUNCTION 같은 디스패치 맵 항목에 사용되는 것과 동일한 상수입니다.

설명

vtsParams 인수는 VTS_ 상수에서 공백으로 구분된 값 목록입니다. 공백(쉼표 아님)으로 구분된 이러한 값 중 하나 이상이 함수의 매개 변수 목록을 지정합니다. 예시:

VTS_I2 VTS_BOOL

는 짧은 정수와 BOOL이 포함된 목록을 지정합니다.

VTS_ 상수 목록은 EVENT_CUSTOM 참조하세요.

요구 사항

헤더 afxdisp.h

ON_EVENT_RANGE

ON_EVENT_RANGE 매크로를 사용하여 연속된 ID 범위 내에 컨트롤 ID가 있는 모든 OLE 컨트롤에서 발생하는 이벤트에 대한 이벤트 처리기 함수를 정의합니다.

ON_EVENT_RANGE(theClass, idFirst, idLast, dispid, pfnHandler,  vtsParams)

매개 변수

theClass
이 이벤트 싱크 맵이 속한 클래스입니다.

idFirst
범위에서 첫 번째 OLE 컨트롤의 컨트롤 ID입니다.

idLast
범위에서 마지막 OLE 컨트롤의 컨트롤 ID입니다.

dispid
컨트롤에서 발생한 이벤트의 디스패치 ID입니다.

pfnHandler
이벤트를 처리하는 멤버 함수에 대한 포인터입니다. 이 함수에는 BOOL 반환 형식, UINT 형식의 첫 번째 매개 변수(컨트롤 ID용) 및 이벤트의 매개 변수와 일치하는 추가 매개 변수 형식이 있어야 합니다(vtsParams 참조). 함수는 TRUE를 반환하여 이벤트가 처리되었음을 나타내야 합니다. 그렇지 않으면 FALSE입니다.

vtsParams
이벤트에 대한 매개 변수의 형식을 지정하는 VTS_ 상수의 시퀀스입니다. 첫 번째 상수는 컨트롤 ID에 대해 VTS_I4 형식이어야 합니다. 이러한 상수는 DISP_FUNCTION 같은 디스패치 맵 항목에 사용되는 것과 동일한 상수입니다.

설명

vtsParams 인수는 VTS_ 상수에서 공백으로 구분된 값 목록입니다. 공백(쉼표 아님)으로 구분된 이러한 값 중 하나 이상이 함수의 매개 변수 목록을 지정합니다. 예시:

VTS_I2 VTS_BOOL

는 짧은 정수와 BOOL이 포함된 목록을 지정합니다.

VTS_ 상수 목록은 EVENT_CUSTOM 참조하세요.

예시

다음 예제에서는 세 가지 컨트롤(IDC_MYCTRL1-IDC_MYCTRL3)에 대해 구현된 MouseDown 이벤트에 대한 이벤트 처리기를 보여 줍니다. 이벤트 처리기 함수 OnRangeMouseDown는 대화 상자 클래스( CMyDlg)의 헤더 파일에 다음과 같이 선언됩니다.

BOOL OnRangeMouseDown(UINT CtlID, short MouseButton, short Shift,
   long x, long y);

아래 코드는 대화 상자 클래스의 구현 파일에 정의되어 있습니다.

BEGIN_EVENTSINK_MAP(CMyDlg, CDialog)
   ON_EVENT_RANGE(CMyDlg, IDC_MYCTRL1, IDC_MYCTRL3, -605, OnRangeMouseDown,
      VTS_I4 VTS_I2 VTS_I2 VTS_I4 VTS_I4)
END_EVENTSINK_MAP()

요구 사항

헤더 afxdisp.h

ON_EVENT_REFLECT

OLE 컨트롤의 래퍼 클래스의 이벤트 싱크 맵에서 사용되는 ON_EVENT_REFLECT 매크로는 컨트롤의 컨테이너에서 처리하기 전에 컨트롤에서 발생한 이벤트를 수신합니다.

ON_EVENT_REFLECT(theClass,  dispid, pfnHandler,  vtsParams)

매개 변수

theClass
이 이벤트 싱크 맵이 속한 클래스입니다.

dispid
컨트롤에서 발생한 이벤트의 디스패치 ID입니다.

pfnHandler
이벤트를 처리하는 멤버 함수에 대한 포인터입니다. 이 함수에는 이벤트의 매개 변수와 일치하는 BOOL 반환 형식 및 매개 변수 형식이 있어야 합니다(vtsParams 참조). 함수는 TRUE를 반환하여 이벤트가 처리되었음을 나타내야 합니다. 그렇지 않으면 FALSE입니다.

vtsParams
이벤트에 대한 매개 변수의 형식을 지정하는 VTS_ 상수의 시퀀스입니다. 이러한 상수는 DISP_FUNCTION 같은 디스패치 맵 항목에 사용되는 것과 동일한 상수입니다.

설명

vtsParams 인수는 VTS_ 상수에서 공백으로 구분된 값 목록입니다.

공백(쉼표 아님)으로 구분된 이러한 값 중 하나 이상이 함수의 매개 변수 목록을 지정합니다. 예시:

VTS_I2 VTS_BOOL

는 짧은 정수와 BOOL이 포함된 목록을 지정합니다.

VTS_ 상수 목록은 EVENT_CUSTOM 참조하세요.

요구 사항

헤더 afxdisp.h

ON_PROPNOTIFY

ON_PROPNOTIFY 매크로를 사용하여 OLE 컨트롤에서 속성 알림을 처리하기 위한 이벤트 싱크 맵 항목을 정의합니다.

ON_PROPNOTIFY(theClass, id, dispid, pfnRequest, pfnChanged)

매개 변수

theClass
이 이벤트 싱크 맵이 속한 클래스입니다.

id
OLE 컨트롤의 컨트롤 ID입니다.

dispid
알림과 관련된 속성의 디스패치 ID입니다.

pfnRequest
이 속성에 대한 알림을 처리하는 멤버 함수에 OnRequestEdit 대한 포인터입니다. 이 함수에는 BOOL 반환 형식과 BOOL* 매개 변수가 있어야 합니다. 이 함수는 속성이 변경되고 FALSE가 허용되지 않도록 매개 변수를 TRUE로 설정해야 합니다. 함수는 알림이 처리되었음을 나타내기 위해 TRUE를 반환해야 합니다. 그렇지 않으면 FALSE입니다.

pfnChanged
이 속성에 대한 알림을 처리하는 멤버 함수에 OnChanged 대한 포인터입니다. 함수에는 BOOL 반환 형식과 UINT 매개 변수가 있어야 합니다. 함수는 알림이 처리되었음을 나타내기 위해 TRUE를 반환해야 합니다. 그렇지 않으면 FALSE입니다.

설명

vtsParams 인수는 VTS_ 상수에서 공백으로 구분된 값 목록입니다. 공백(쉼표 아님)으로 구분된 이러한 값 중 하나 이상이 함수의 매개 변수 목록을 지정합니다. 예시:

VTS_I2 VTS_BOOL

는 짧은 정수와 BOOL이 포함된 목록을 지정합니다.

VTS_ 상수 목록은 EVENT_CUSTOM 참조하세요.

ON_PROPNOTIFY_RANGE

ON_PROPNOTIFY_RANGE 매크로를 사용하여 인접한 ID 범위 내에 컨트롤 ID가 있는 모든 OLE 컨트롤의 속성 알림을 처리하기 위한 이벤트 싱크 맵 항목을 정의합니다.

ON_PROPNOTIFY_RANGE(theClass, idFirst, idLast, dispid, pfnRequest, pfnChanged)

매개 변수

theClass
이 이벤트 싱크 맵이 속한 클래스입니다.

idFirst
범위에서 첫 번째 OLE 컨트롤의 컨트롤 ID입니다.

idLast
범위에서 마지막 OLE 컨트롤의 컨트롤 ID입니다.

dispid
알림과 관련된 속성의 디스패치 ID입니다.

pfnRequest
이 속성에 대한 알림을 처리하는 멤버 함수에 OnRequestEdit 대한 포인터입니다. 이 함수에는 BOOL 반환 형식 및 UINT 매개 변수가 BOOL* 있어야 합니다. 속성이 변경되고 FALSE가 허용되지 않도록 하려면 함수가 매개 변수를 TRUE로 설정해야 합니다. 함수는 알림이 처리되었음을 나타내기 위해 TRUE를 반환해야 합니다. 그렇지 않으면 FALSE입니다.

pfnChanged
이 속성에 대한 알림을 처리하는 멤버 함수에 OnChanged 대한 포인터입니다. 함수에는 반환 형식과 매개 변수가 UINT 있어야 합니다BOOL. 함수는 알림이 처리되었음을 나타내기 위해 TRUE를 반환해야 합니다. 그렇지 않으면 FALSE입니다.

요구 사항

헤더 afxdisp.h

ON_PROPNOTIFY_REFLECT

OLE 컨트롤의 래퍼 클래스의 이벤트 싱크 맵에서 사용되는 ON_PROPNOTIFY_REFLECT 매크로는 컨트롤의 컨테이너에서 처리하기 전에 컨트롤에서 보낸 속성 알림을 받습니다.

ON_PROPNOTIFY_REFLECT(theClass, dispid, pfnRequest, pfnChanged)

매개 변수

theClass
이 이벤트 싱크 맵이 속한 클래스입니다.

dispid
알림과 관련된 속성의 디스패치 ID입니다.

pfnRequest
이 속성에 대한 알림을 처리하는 멤버 함수에 OnRequestEdit 대한 포인터입니다. 이 함수에는 BOOL 반환 형식과 BOOL* 매개 변수가 있어야 합니다. 이 함수는 속성이 변경되고 FALSE가 허용되지 않도록 매개 변수를 TRUE로 설정해야 합니다. 함수는 알림이 처리되었음을 나타내기 위해 TRUE를 반환해야 합니다. 그렇지 않으면 FALSE입니다.

pfnChanged
이 속성에 대한 알림을 처리하는 멤버 함수에 OnChanged 대한 포인터입니다. 함수에는 BOOL 반환 형식이 있어야 하며 매개 변수는 없어야 합니다. 함수는 알림이 처리되었음을 나타내기 위해 TRUE를 반환해야 합니다. 그렇지 않으면 FALSE입니다.

요구 사항

헤더 afxdisp.h

참고 항목

매크로 및 전역