COMMAND_HANDLER

메시지 맵에 엔트리를 정의합니다.

COMMAND_HANDLER( id, code, func )

매개 변수

  • id
    [in] 메뉴 항목, 컨트롤 또는 액셀러레이터 키 식별자입니다.

  • code
    [in] 알림 코드입니다.

  • func
    [in] 메시지 처리기 함수의 이름입니다.

설명

COMMAND_HANDLER매핑되는 WM_COMMAND 메시지 알림 코드 및 컨트롤 식별자를 기준으로 지정 된 처리기 함수를.예를 들면 다음과 같습니다.

class ATL_NO_VTABLE CPolyProp :
   public CComObjectRootEx<CComSingleThreadModel>,
   public CComCoClass<CPolyProp, &CLSID_PolyProp>,
   public IPropertyPageImpl<CPolyProp>,
   public CDialogImpl<CPolyProp>
{
public:
BEGIN_COM_MAP(CPolyProp)
   COM_INTERFACE_ENTRY(IPropertyPage)
END_COM_MAP()

BEGIN_MSG_MAP(CPolyProp)
   COMMAND_HANDLER(IDC_SIDES, EN_CHANGE, OnEnChangeSides)
   CHAIN_MSG_MAP(IPropertyPageImpl<CPolyProp>)
END_MSG_MAP()

   // When a CPolyProp object receives a WM_COMMAND message identified 
   // by IDC_SIDES and EN_CHANGE, the message is directed to 
   // CPolyProp::OnEnChangeSides for the actual processing.
   LRESULT OnEnChangeSides(WORD /*wNotifyCode*/, WORD /*wID*/, HWND /*hWndCtl*/, 
      BOOL& /*bHandled*/);

지정 된 함수는 COMMAND_HANDLER 매크로 다음과 같이 정의 해야 합니다.

LRESULT CommandHandler(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);

메시지 맵 세트 bHandled 에 TRUE 전에 CommandHandler 라고 합니다.경우 CommandHandler 메시지를 완전히 처리 하지 않는 설정 해야 bHandled 에 FALSE 필요 합니다 라는 메시지가 더 이상 처리를 나타냅니다.

[!참고]

항상 메시지 맵을 시작 BEGIN_MSG_MAP.에서는 다음 후속 대체 메시지 맵을 사용 하 여 선언할 수 있습니다 ALT_MSG_MAP.END_MSG_MAP 매크로 메시지 맵의 끝을 표시 합니다.모든 메시지 맵에서의 인스턴스를 하나만 있어야 합니다. BEGIN_MSG_MAPEND_MSG_MAP.

외에 COMMAND_HANDLER를 사용할 수 있습니다 MESSAGE_HANDLER 매핑하는 WM_COMMAND 메시지 id 또는 코드에 관계 없이.이 경우 MESSAGE_HANDLER(WM_COMMAND, OnHandlerFunction) 모든 안내 WM_COMMAND 메시지를 OnHandlerFunction.

ATL에서는 메시지 맵을 사용 하는 방법에 대 한 자세한 내용은 메시지 맵.

요구 사항

헤더: atlwin.h

참고 항목

참조

COMMAND_ID_HANDLER

COMMAND_CODE_HANDLER

COMMAND_RANGE_HANDLER

NOTIFY_HANDLER

기타 리소스

메시지 맵 매크로 (ATL)

ATL 매크로