CHAIN_MSG_MAP
메시지 맵에 엔트리를 정의합니다.
CHAIN_MSG_MAP( theChainClass )
매개 변수
- theChainClass
[in] 메시지 맵을 포함 하는 기본 클래스의 이름입니다.
설명
CHAIN_MSG_MAP기본 클래스의 기본 메시지 맵에 메시지를 보냅니다 (선언 BEGIN_MSG_MAP).대체 메시지 맵 기본 클래스에 메시지를 직접 (선언 ALT_MSG_MAP)를 사용 하 여 CHAIN_MSG_MAP_ALT.
[!참고]
항상 메시지 맵을 시작 BEGIN_MSG_MAP.에서는 다음 후속 대체 메시지 맵을 사용 하 여 선언할 수 있습니다 ALT_MSG_MAP.END_MSG_MAP 매크로 메시지 맵의 끝을 표시 합니다.모든 메시지 맵에서의 인스턴스를 하나만 있어야 합니다. BEGIN_MSG_MAP 및 END_MSG_MAP.
ATL에서는 메시지 맵을 사용 하는 방법에 대 한 자세한 내용은 메시지 맵.
예제
class CMyExtClass : public CMyBaseClass
{
public:
BEGIN_MSG_MAP(CMyExtClass)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
// chain to default message map in CMyBaseClass
CHAIN_MSG_MAP(CMyBaseClass)
ALT_MSG_MAP(1)
// chain to first alternative message map in CMyBaseClass
CHAIN_MSG_MAP(CMyBaseClass)
ALT_MSG_MAP(2)
MESSAGE_HANDLER(WM_CHAR, OnChar)
// chain to alternate message map in CMyBaseClass
CHAIN_MSG_MAP_ALT(CMyBaseClass, 1)
END_MSG_MAP()
LRESULT OnPaint(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,
BOOL& /*bHandled*/)
{
return 0;
}
LRESULT OnChar(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,
BOOL& /*bHandled*/)
{
return 0;
}
};
이 예제에서는 다음을 보여 줍니다.
창 프로시저를 사용 하는 경우 CMyClass의 기본 메시지 맵 및 OnPaint 메시지를 메시지를 하도록 지시 하는 핸들이 아니라 하지 CMyBaseClass의 기본 메시지 맵을 처리 합니다.
창 프로시저에서 첫 번째 대체 메시지 맵을 사용 하는 경우 CMyClass, 모든 메시지를 보도록 CMyBaseClass의 기본 메시지 맵.
창 프로시저를 사용 하는 경우 CMyClass의 두 번째 대체 메시지 맵 및 OnChar 메시지는 메시지에 지정 된 대체 메시지 맵을 하도록 지시 되어 핸들 없는 CMyBaseClass.CMyBaseClass이 메시지 맵을 선언 해야 ALT_MSG_MAP(1).
요구 사항
헤더: atlwin.h