BEGIN_MSG_MAP ( 클래스 )
매개 변수
클래스
[in] 메시지 맵을 포함 하는 클래스의 이름。
주의
기본 메시지 맵의 시작을 표시 합니다. CWindowImpl::WindowProc 창에 보낸 메시지를 처리 하려면 기본 메시지 맵을 사용 합니다. 메시지 맵에 지시 메시지 적절 한 처리기 함수 또는 다른 메시지 맵。
다음 매크로 메시지를 처리기 함수에 매핑합니다. 이 함수는 클래스 에 정의 되어야 합니다.
| 매크로 | 설명 |
| MESSAGE_HANDLER | Windows 메시지를 처리기 함수를 매핑합니다. |
| MESSAGE_RANGE_HANDLER | 지도 연속 Windows 메시지 처리기 함수를。 |
| COMMAND_HANDLER | WM_COMMAND 메시지를 알림 코드와 메뉴 항목, 컨트롤 또는 가속기의 식별자를 기반으로 하는 처리기 함수를 매핑합니다. |
| COMMAND_ID_HANDLER | 메뉴 항목, 컨트롤 또는 가속기의 식별자를 기반으로 하는 처리기 함수를 WM_COMMAND 메시지를 매핑합니다. |
| COMMAND_CODE_HANDLER | WM_COMMAND 메시지를 알림 코드를 기반으로 하는 처리기 함수를 매핑합니다. |
| COMMAND_RANGE_HANDLER | 메뉴 항목, 컨트롤 또는 가속기의 식별자를 기반으로 하는 처리기 함수를 WM_COMMAND 메시지의 연속 범위를 매핑합니다. |
| NOTIFY_HANDLER | WM_NOTIFY 메시지를 알림 코드와 컨트롤 식별자를 기반으로 하는 처리기 함수를 매핑합니다. |
| NOTIFY_ID_HANDLER | 컨트롤 식별자를 기반으로 하는 처리기 함수를 WM_NOTIFY 메시지를 매핑합니다. |
| NOTIFY_CODE_HANDLER | WM_NOTIFY 메시지를 알림 코드를 기반으로 하는 처리기 함수를 매핑합니다. |
| NOTIFY_RANGE_HANDLER | 컨트롤 식별자를 기반으로 하는 처리기 함수를 WM_NOTIFY 메시지의 연속 범위를 매핑합니다. |
다음 매크로 메시지를 다른 메시지 맵 직접. 이 프로세스를 "체인." 라고
| 매크로 | 설명 |
| CHAIN_MSG_MAP | 기본 클래스에 있는 기본 메시지 맵 체인。 |
| CHAIN_MSG_MAP_MEMBER | 기본 메시지 맵 클래스의 데이터 멤버에 체인。 |
| CHAIN_MSG_MAP_ALT | 기본 클래스에는 대체 메시지 맵 체인。 |
| CHAIN_MSG_MAP_ALT_MEMBER | 클래스의 데이터 멤버에는 대체 메시지 맵 체인。 |
| CHAIN_MSG_MAP_DYNAMIC | 런타임에 다른 클래스의 기본 메시지 맵 체인。 |
예제
cMyWindow 클래스:...
{
공개:
nbsp; ...
BEGIN_MSG_MAP(CMyWindow)
???? MESSAGE_HANDLER (WM_PAINT, OnPaint)
???? MESSAGE_HANDLER (WM_SETFOCUS, OnSetFocus)
???? CHAIN_MSG_MAP(CMyBaseWindow)
? END_MSG_MAP()
LRESULT OnPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
? { ... }
LRESULT OnSetFocus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
? { ... }
}
경우는 CMyWindow 개체를 받습니다는 WM_PAINT 메시지, 메시지 이동 CMyWindow::OnPaint 실제 처리에 대 한. 만약 OnPaint 메시지 메시지 것을 처리 하는 것이 더 필요를 나타냅니다 다음에 기본 메시지 지도 감독CMyBaseWindow。
기본 메시지 맵을 외에 ALT_MSG_MAP와 대체 메시지 맵을 정의할 수 있습니다. 항상 BEGIN_MSG_MAP함께 메시지 맵을 시작 합니다. 그런 다음 후속 대체 메시지 맵을 선언할 수 있습니다. 다음 예제에서는 기본 메시지 맵과 하나의 대체 메시지 맵을 각각 하나의 처리기 함수를 포함 하:
BEGIN_MSG_MAP(CMyClass)
nbsp; MESSAGE_HANDLER (WM_PAINT, OnPaint)
ALT_MSG_MAP(&1)
? MESSAGE_HANDLER (WM_SETFOCUS, OnSetFocus)
END_MSG_MAP()
다음 예제에서는 두 개의 대체 메시지 맵을 보여 줍니다. 기본 메시지 맵을 비어 있습니다.
BEGIN_MSG_MAP(CMyClass)
ALT_MSG_MAP(&1)
nbsp; MESSAGE_HANDLER (WM_PAINT, OnPaint)
? MESSAGE_HANDLER (WM_SETFOCUS, OnSetFocus)
ALT_MSG_MAP(2)
? MESSAGE_HANDLER (WM_CREATE, OnCreate)
END_MSG_MAP()
END_MSG_MAP 매크로 메시지 맵의 끝을 표시 합니다. 참고 BEGIN_MSG_MAP 및 END_MSG_MAP 정확히 하나의 인스턴스는 항상。
ATL에서 메시지 맵을 사용 하는 방법에 대 한 자세한 내용은 문서의 "ATL 창 클래스." 메시지 맵 을 참조합니다
참고 항목