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_MAP 및 END_MSG_MAP.
외에 COMMAND_HANDLER를 사용할 수 있습니다 MESSAGE_HANDLER 매핑하는 WM_COMMAND 메시지 id 또는 코드에 관계 없이. 이 경우 MESSAGE_HANDLER(WM_COMMAND, OnHandlerFunction) 모든 안내 WM_COMMAND 메시지를 OnHandlerFunction.
ATL에서는 메시지 맵을 사용 하는 방법에 대 한 자세한 내용은 메시지 맵.
요구 사항
헤더: atlwin.h