BEGIN_MSG_MAP ( theClass )
Параметры
theClass
[в] Имя класса, содержащего схеме сообщений.
Примечания
Отмечает начало схеме сообщений по умолчанию. 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 | Цепи в схеме сообщений по умолчанию в другом классе во время выполнения. |
Пример
класс CMyWindow:...
{
общественности:
nbsp; ...
BEGIN_MSG_MAP(CMyWindow)
MESSAGE_HANDLER (WM_PAINT, OnPaint)
MESSAGE_HANDLER (WM_SETFOCUS, OnSetFocus)
CHAIN_MSG_MAP(CMyBaseWindow)
END_MSG_MAP()
LRESULT OnPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{ ... }
LRESULT OnSetFocus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{ ... }
}
Когда CMyWindow
объект получает WM_PAINT
, сообщение направлено сообщение CMyWindow::OnPaint
для фактической обработки. Если OnPaint
указывает сообщение требует дальнейшей обработки, сообщение будет затем направляться в схеме сообщений по умолчанию вCMyBaseWindow
.
В дополнение к схеме сообщений по умолчанию можно определить альтернативной схеме сообщений с ALT_MSG_MAP. Всегда начинаются сообщений карту с BEGIN_MSG_MAP. Затем можно объявить последующие сообщения альтернативные карты. В следующем примере показано схеме сообщений по умолчанию и одной альтернативной схеме сообщений, каждый из которых содержит одну функцию обработчика по умолчанию:
BEGI&N_MSG_MAP(CMyClass)
nbsp; MESSAGE_HANDLER (WM_PAINT, OnPaint)
ALT_MSG_MAP(1)
MESSAGE_HANDLER (WM_SETFOCUS, OnSetFocus)
END_MSG_MAP()
В следующем примере показаны две альтернативные сообщение карты. В схеме сообщений по умолчанию является пустым.
BEGI&N_MSG_MAP(CMyClass)
ALT_MSG_MAP(1)
nbsp; 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 Отображает сообщение в разделе статьи "Окно классов ATL."
Глобальные функции и макросы ATL
Родственные слова