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


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

См. также

Ссылки

CHAIN_MSG_MAP_MEMBER

CHAIN_MSG_MAP_DYNAMIC

MESSAGE_HANDLER

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

Message Map Macros (ATL)

Макросы ATL