Поделиться через


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 без учета идентификатора или кода.В этом случае MESSAGE_HANDLER(WM_COMMAND, OnHandlerFunction) направит все сообщения WM_COMMAND к OnHandlerFunction.

Дополнительные сведения об использовании сопоставления сообщения в библиотеке ATL см. в разделе сопоставления сообщения.

Требования

Header: atlwin.h

См. также

Ссылки

COMMAND_ID_HANDLER

COMMAND_CODE_HANDLER

COMMAND_RANGE_HANDLER

NOTIFY_HANDLER

Другие ресурсы

Макросы сопоставления сообщения (библиотека ATL)

Макросы ATL