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