MFC ActiveX 컨트롤: 이벤트
ActiveX 컨트롤은 이벤트를 사용하여 컨트롤에 어떤 일이 발생했음을 컨테이너에 알립니다. 이벤트의 일반적인 예로는 컨트롤 클릭, 키보드를 사용하여 입력한 데이터, 컨트롤의 상태 변경 등이 있습니다. 이러한 작업이 발생하면 컨트롤이 컨테이너에 경고하는 이벤트를 발생합니다.
이벤트를 메시지라고도합니다.
MFC는 주식과 사용자 지정이라는 두 가지 종류의 이벤트를 지원합니다. 스톡 이벤트는 COleControl 클래스가 자동으로 처리하는 이벤트입니다. 주식 이벤트의 전체 목록은 MFC ActiveX 컨트롤: 스톡 이벤트 추가 문서를 참조하세요. 사용자 지정 이벤트를 통해 컨트롤은 해당 컨트롤과 관련된 작업이 발생할 때 컨테이너에 알릴 수 있습니다. 일부 예는 컨트롤의 내부 상태가 변경되거나 특정 창 메시지를 수신하는 것입니다.
컨트롤이 이벤트를 제대로 실행하려면 컨트롤 클래스가 컨트롤의 각 이벤트를 관련 이벤트가 발생할 때 호출해야 하는 멤버 함수에 매핑해야 합니다. 이 매핑 메커니즘(이벤트 맵이라고 함)은 이벤트에 대한 정보를 중앙 집중화하고 Visual Studio에서 컨트롤의 이벤트에 쉽게 액세스하고 조작할 수 있도록 합니다. 이 이벤트 맵은 헤더()에 있는 다음 매크로에 의해 선언됩니다. H) 컨트롤 클래스 선언의 파일:
DECLARE_EVENT_MAP()
이벤트 맵이 선언된 후에는 컨트롤의 구현()에 정의되어야 합니다. CPP) 파일입니다. 다음 코드 줄은 이벤트 맵을 정의하여 컨트롤이 특정 이벤트를 발생하도록 허용합니다.
BEGIN_EVENT_MAP(CMyAxUICtrl, COleControl)
END_EVENT_MAP()
MFC ActiveX 컨트롤 마법사를 사용하여 프로젝트를 만드는 경우 이러한 줄이 자동으로 추가됩니다. MFC ActiveX 컨트롤 마법사를 사용하지 않는 경우 이러한 줄을 수동으로 추가해야 합니다.
클래스 뷰를 사용하면 정의하는 클래스 COleControl
또는 사용자 지정 이벤트에서 지원하는 스톡 이벤트를 추가할 수 있습니다. 새 이벤트마다 클래스 뷰는 컨트롤의 이벤트 맵 및 컨트롤에 적절한 항목을 자동으로 추가합니다. IDL 파일입니다.
다른 두 문서에서는 이벤트를 자세히 설명합니다.