CHAIN_MSG_MAP
Определяет запись в сопоставлении сообщений.
CHAIN_MSG_MAP( theChainClass )
Параметры
- theChainClass
[in] Имя базового класса, содержащий сопоставление сообщения.
Заметки
CHAIN_MSG_MAP направляет сообщения для сопоставления базового типа сообщений по умолчанию (объявленный с BEGIN_MSG_MAP). Для направления сообщения к сообщению другое сопоставление базового типа (объявленный с ALT_MSG_MAP), используйте CHAIN_MSG_MAP_ALT.
Примечание
Всегда начинайте сопоставления сообщения с BEGIN_MSG_MAP.Затем можно объявить последующие другие сопоставления сообщения с ALT_MSG_MAP.Макрос END_MSG_MAP отмечает конец сопоставления сообщения.Каждое сопоставление сообщения должно иметь ровно один экземпляр BEGIN_MSG_MAP и END_MSG_MAP.
Дополнительные сведения об использовании сопоставления сообщения в библиотеке ATL см. в разделе сопоставления сообщения.
Пример
class CMyExtClass : public CMyBaseClass
{
public:
BEGIN_MSG_MAP(CMyExtClass)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
// chain to default message map in CMyBaseClass
CHAIN_MSG_MAP(CMyBaseClass)
ALT_MSG_MAP(1)
// chain to first alternative message map in CMyBaseClass
CHAIN_MSG_MAP(CMyBaseClass)
ALT_MSG_MAP(2)
MESSAGE_HANDLER(WM_CHAR, OnChar)
// chain to alternate message map in CMyBaseClass
CHAIN_MSG_MAP_ALT(CMyBaseClass, 1)
END_MSG_MAP()
LRESULT OnPaint(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,
BOOL& /*bHandled*/)
{
return 0;
}
LRESULT OnChar(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,
BOOL& /*bHandled*/)
{
return 0;
}
};
Этот пример иллюстрирует следующее:
Если процедура окна сообщения CMyClass использует сопоставление по умолчанию и OnPaint не обрабатывает сообщение, то производится его маршрутизация к сопоставлению сообщения CMyBaseClass по умолчанию для обработки.
Если процедура окна используется первое другое сопоставление сообщения в CMyClass, все сообщения направляются к сопоставлению сообщения CMyBaseClass по умолчанию.
Если процедура окна использует второй другое сопоставление сообщения CMyClass и OnChar не обрабатывает сообщение, то производится его маршрутизация к определенному другой сопоставлению сообщения в CMyBaseClass. CMyBaseClass следует объявить такое сопоставление сообщений с ALT_MSG_MAP(1).
Требования
Header: atlwin.h