BEGIN_MSG_MAP
Отмечает начало по умолчанию сопоставления сообщения.
BEGIN_MSG_MAP( theClass )
Параметры
- theClass
[in] Имя класса, содержащий сопоставление сообщения.
Заметки
CWindowImpl::WindowProc по умолчанию использует сопоставление сообщений для обработки сообщения, отправляемые окно. Сопоставление направляет сообщения или сообщения в соответствующую функции обработчика или в другое сопоставление сообщения.
Следующие макросы сопоставить сообщение в функции обработчика. Эту функцию необходимо указать в theClass.
Макрос |
Описание |
---|---|
Сопоставляет сообщение Windows для функции обработчика. |
|
Сопоставляет сопредельное диапазон сообщений Windows функции обработчика. |
|
Сопоставляет сообщение WM_COMMAND функции обработчика, основанный на коде уведомления и идентификатор пункта меню, элемента управления или сочетаний клавиш. |
|
Сопоставляет сообщение WM_COMMAND функции обработчика, основанный на идентификаторе пункта меню, элемента управления или сочетаний клавиш. |
|
Сопоставляет сообщение WM_COMMAND функции обработчика, основанный на коде уведомления. |
|
Сопоставляет сопредельное диапазон сообщений WM_COMMAND функции обработчика, основанный на идентификаторе пункта меню, элемента управления или сочетаний клавиш. |
|
Сопоставляет сообщение WM_NOTIFY функции обработчика, основанный на коде уведомления и идентификаторе элемента управления. |
|
Сопоставляет сообщение WM_NOTIFY функции обработчика, основанный на идентификаторе элемента управления. |
|
Сопоставляет сообщение WM_NOTIFY функции обработчика, основанный на коде уведомления. |
|
Сопоставляет сопредельное диапазон сообщений WM_NOTIFY функции обработчика, основанный на идентификаторе элемента управления. |
Следующие макросы маршрутизации сообщений в другое сопоставление сообщения. Этот процесс вызова "связывание".
Макрос |
Описание |
---|---|
Добавляет к сопоставлению по умолчанию сообщения в базовом классе. |
|
Добавляет к сопоставлению сообщения по умолчанию в элементе данных класса. |
|
Цепочки в другое сопоставление сообщений в базовом классе. |
|
Цепочки в другое сопоставление сообщения в элементе данных класса. |
|
Добавляет к сопоставлению по умолчанию сообщения в другом классе во время выполнения. |
Следующие управляющие макросы "отраженные" сообщения от родительского окна. Например, элемент управления, обычно отправляет сообщения уведомления к его родительскому окну для обработки, но родительское окно может автоматически устанавливать сообщение обратно к элементу управления.
Макрос |
Описание |
---|---|
Сопоставляет отраженное сообщение WM_COMMAND функции обработчика, основанный на коде уведомления и идентификатор пункта меню, элемента управления или сочетаний клавиш. |
|
Сопоставляет отраженное сообщение WM_COMMAND функции обработчика, основанный на идентификаторе пункта меню, элемента управления или сочетаний клавиш. |
|
Сопоставляет отраженное сообщение WM_COMMAND функции обработчика, основанный на коде уведомления. |
|
Сопоставляет отраженное сообщение WM_COMMAND функции обработчика, основываясь на сопредельном диапазон идентификаторов элемента управления. |
|
Сопоставляет отраженное сообщение WM_COMMAND функции обработчика, основанный на коде уведомления и сопредельном диапазон идентификаторов элемента управления. |
|
Сопоставляет отраженное сообщение WM_NOTIFY функции обработчика, основанный на коде уведомления и идентификаторе элемента управления. |
|
Сопоставляет отраженное сообщение WM_NOTIFY функции обработчика, основанный на идентификаторе элемента управления. |
|
Сопоставляет отраженное сообщение WM_NOTIFY функции обработчика, основанный на коде уведомления. |
|
Сопоставляет отраженное сообщение WM_NOTIFY функции обработчика, основываясь на сопредельном диапазон идентификаторов элемента управления. |
|
Сопоставляет отраженное сообщение 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