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


MESSAGE_HANDLER

Определяет запись в сопоставлении сообщений.

MESSAGE_HANDLER( 
   msg, 
   func  
)

Параметры

  • msg
    [in] Сообщение Windows.

  • func
    [in] Имя функции обработчика сообщений.

Заметки

MESSAGE_HANDLER сопоставляет сообщение Windows для указанной функции обработчика.

Любую функцию, определенную в макросе MESSAGE_HANDLER должны быть заданы следующим образом:

LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);

Вызываются наборы bHandled сопоставления сообщения с TRUE перед MessageHandler.Если MessageHandler не полностью обрабатывает сообщение, оно должно установить bHandled к FALSE для указания необходимостей дальнейшую обработку сообщения.

ПримечаниеПримечание

Всегда начинайте сопоставления сообщения с BEGIN_MSG_MAP.Затем можно объявить последующие другие сопоставления сообщения с ALT_MSG_MAP.Макрос END_MSG_MAP отмечает конец сопоставления сообщения.Каждое сопоставление сообщения должно иметь ровно один экземпляр BEGIN_MSG_MAP и END_MSG_MAP.

В дополнение к MESSAGE_HANDLER можно использовать COMMAND_HANDLER и NOTIFY_HANDLER для сопоставления сообщения WM_COMMAND и WM_NOTIFY соответственно.

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

Пример

class CMyBaseWindow : public CWindowImpl<CMyBaseWindow>
{
public:
   BEGIN_MSG_MAP(CMyBaseWindow)
      MESSAGE_HANDLER(WM_CREATE, OnCreate)
   END_MSG_MAP()

   // When a CMyBaseWindow object receives a WM_CREATE message, the message
   // is directed to CMyBaseWindow::OnCreate for the actual processing.
   LRESULT OnCreate(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, 
      BOOL& /*bHandled*/)
   {
      return 0;   
   }
};

Требования

Header: atlwin.h

См. также

Ссылки

MESSAGE_RANGE_HANDLER

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

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

Макросы ATL