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


BEGIN_MSG_MAP

Отмечает начало по умолчанию сопоставления сообщения.

BEGIN_MSG_MAP( theClass )

Параметры

  • theClass
    [in] Имя класса, содержащий сопоставление сообщения.

Заметки

CWindowImpl::WindowProc по умолчанию использует сопоставление сообщений для обработки сообщения, отправляемые окно. Сопоставление направляет сообщения или сообщения в соответствующую функции обработчика или в другое сопоставление сообщения.

Следующие макросы сопоставить сообщение в функции обработчика. Эту функцию необходимо указать в theClass.

Макрос

Описание

MESSAGE_HANDLER

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

MESSAGE_RANGE_HANDLER

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

COMMAND_HANDLER

Сопоставляет сообщение WM_COMMAND функции обработчика, основанный на коде уведомления и идентификатор пункта меню, элемента управления или сочетаний клавиш.

COMMAND_ID_HANDLER

Сопоставляет сообщение WM_COMMAND функции обработчика, основанный на идентификаторе пункта меню, элемента управления или сочетаний клавиш.

COMMAND_CODE_HANDLER

Сопоставляет сообщение WM_COMMAND функции обработчика, основанный на коде уведомления.

COMMAND_RANGE_HANDLER

Сопоставляет сопредельное диапазон сообщений WM_COMMAND функции обработчика, основанный на идентификаторе пункта меню, элемента управления или сочетаний клавиш.

NOTIFY_HANDLER

Сопоставляет сообщение WM_NOTIFY функции обработчика, основанный на коде уведомления и идентификаторе элемента управления.

NOTIFY_ID_HANDLER

Сопоставляет сообщение WM_NOTIFY функции обработчика, основанный на идентификаторе элемента управления.

NOTIFY_CODE_HANDLER

Сопоставляет сообщение WM_NOTIFY функции обработчика, основанный на коде уведомления.

NOTIFY_RANGE_HANDLER

Сопоставляет сопредельное диапазон сообщений WM_NOTIFY функции обработчика, основанный на идентификаторе элемента управления.

Следующие макросы маршрутизации сообщений в другое сопоставление сообщения. Этот процесс вызова "связывание".

Макрос

Описание

CHAIN_MSG_MAP

Добавляет к сопоставлению по умолчанию сообщения в базовом классе.

CHAIN_MSG_MAP_MEMBER

Добавляет к сопоставлению сообщения по умолчанию в элементе данных класса.

CHAIN_MSG_MAP_ALT

Цепочки в другое сопоставление сообщений в базовом классе.

CHAIN_MSG_MAP_ALT_MEMBER

Цепочки в другое сопоставление сообщения в элементе данных класса.

CHAIN_MSG_MAP_DYNAMIC

Добавляет к сопоставлению по умолчанию сообщения в другом классе во время выполнения.

Следующие управляющие макросы "отраженные" сообщения от родительского окна. Например, элемент управления, обычно отправляет сообщения уведомления к его родительскому окну для обработки, но родительское окно может автоматически устанавливать сообщение обратно к элементу управления.

Макрос

Описание

REFLECTED_COMMAND_HANDLER

Сопоставляет отраженное сообщение WM_COMMAND функции обработчика, основанный на коде уведомления и идентификатор пункта меню, элемента управления или сочетаний клавиш.

REFLECTED_COMMAND_ID_HANDLER

Сопоставляет отраженное сообщение WM_COMMAND функции обработчика, основанный на идентификаторе пункта меню, элемента управления или сочетаний клавиш.

REFLECTED_COMMAND_CODE_HANDLER

Сопоставляет отраженное сообщение WM_COMMAND функции обработчика, основанный на коде уведомления.

REFLECTED_COMMAND_RANGE_HANDLER

Сопоставляет отраженное сообщение WM_COMMAND функции обработчика, основываясь на сопредельном диапазон идентификаторов элемента управления.

REFLECTED_COMMAND_RANGE_CODE_HANDLER

Сопоставляет отраженное сообщение WM_COMMAND функции обработчика, основанный на коде уведомления и сопредельном диапазон идентификаторов элемента управления.

REFLECTED_NOTIFY_HANDLER

Сопоставляет отраженное сообщение WM_NOTIFY функции обработчика, основанный на коде уведомления и идентификаторе элемента управления.

REFLECTED_NOTIFY_ID_HANDLER

Сопоставляет отраженное сообщение WM_NOTIFY функции обработчика, основанный на идентификаторе элемента управления.

REFLECTED_NOTIFY_CODE_HANDLER

Сопоставляет отраженное сообщение WM_NOTIFY функции обработчика, основанный на коде уведомления.

REFLECTED_NOTIFY_RANGE_HANDLER

Сопоставляет отраженное сообщение WM_NOTIFY функции обработчика, основываясь на сопредельном диапазон идентификаторов элемента управления.

REFLECTED_NOTIFY_RANGE_CODE_HANDLER

Сопоставляет отраженное сообщение WM_NOTIFY функции обработчика, основанный на коде уведомления и сопредельном диапазон идентификаторов элемента управления.

Пример

class CMyExtWindow : public CMyBaseWindow
{
public:
   BEGIN_MSG_MAP(CMyExtWindow)
      MESSAGE_HANDLER(WM_PAINT, OnPaint)
      MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
      CHAIN_MSG_MAP(CMyBaseWindow)
   END_MSG_MAP()

   LRESULT OnPaint(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, 
      BOOL& /*bHandled*/)
   {
      return 0;   
   }

   LRESULT OnSetFocus(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, 
      BOOL& /*bHandled*/) 
   {
      return 0;   
   }
};

Если объект CMyExtWindow получает сообщение WM_PAINT, сообщение перенаправляется CMyExtWindow::OnPaint для фактического обработки. Если OnPaint указывающее, то сообщение требует дополнительной обработки, сообщение будет передано по умолчанию сопоставления сообщения в CMyBaseWindow.

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

BEGIN_MSG_MAP(CMyOneAltClass)
   MESSAGE_HANDLER(WM_PAINT, OnPaint)
ALT_MSG_MAP(1)
   MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
END_MSG_MAP()

В следующем примере показан 2 других сопоставления сообщения. По умолчанию сопоставление сообщения пустое.

BEGIN_MSG_MAP(CMyClass)
ALT_MSG_MAP(1)
   MESSAGE_HANDLER(WM_PAINT, OnPaint)
   MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
ALT_MSG_MAP(2)
   MESSAGE_HANDLER(WM_CREATE, OnCreate)
END_MSG_MAP()

Макрос END_MSG_MAP отмечает конец сопоставления сообщения. Обратите внимание, что всегда ровно один экземпляр BEGIN_MSG_MAP и END_MSG_MAP.

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

Требования

Header: atlwin.h

См. также

Ссылки

CMessageMap Class

CDynamicChain Class

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

Message Map Macros (ATL)

Макросы ATL