다음을 통해 공유


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_MAPEND_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

참고 항목

참조

CHAIN_MSG_MAP_MEMBER

CHAIN_MSG_MAP_DYNAMIC

MESSAGE_HANDLER

기타 리소스

메시지 맵 매크로 (ATL)

ATL 매크로