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


Класс CMessageMap

Этот класс позволяет сопоставления сообщения объекта, чтобы иметь доступ другим объектом.

Важное примечаниеВажно

Этот класс и его члены нельзя использовать в приложениях, выполняемых в этой среде выполнения Windows.

class ATL_NO_VTABLE CMessageMap

Члены

82kc1c2x.collapse_all(ru-ru,VS.110).gifОткрытые методы

Имя

Описание

CMessageMap::ProcessWindowMessage

Обращается к сопоставлению в CMessageMap- производный класс сообщений.

Заметки

CMessageMap абстрактный базовый класс, который позволяет сопоставления сообщения объекта для доступа к другой объект.Для этого объекта, чтобы сделать его сопоставления сообщения, этот класс должен наследоваться от CMessageMap.

Использование CMessageMap поддержки, содержащихся в окне, и динамическое связывание библиотеки ATL сопоставить сообщение.Например, любой классифицируют содержать объект CContainedWindow, должны наследоваться от CMessageMap.Следующий фрагмент кода взят из образца SUBEDIT.С помощью CComControl, класс CAtlEdit автоматически наследуется от CMessageMap.

class ATL_NO_VTABLE CAtlEdit :
   OtherInheritedClasses
   public CComControl<CAtlEdit>
   // CComControl derives from CWindowImpl, which derives from CMessageMap
{
public:
   // Declare a contained window data member
   CContainedWindow m_ctlEdit;

   // Initialize the contained window:
   // 1. Pass "Edit" to specify that the contained 
   //    window should be based on the standard 
   //    Windows Edit box
   // 2. Pass 'this' pointer to specify that CAtlEdit 
   //    contains the message map to be used for the 
   //    contained window's message processing
   // 3. Pass the identifier of the message map. '1'
   //    identifies the alternate message map declared
   //    with ALT_MSG_MAP(1)
   CAtlEdit()
      : m_ctlEdit(_T("Edit"), this, 1)
   {
      m_bWindowOnly = TRUE;
   }

// Declare the default message map, identified by '0'
BEGIN_MSG_MAP(CAtlEdit)
   MESSAGE_HANDLER(WM_CREATE, OnCreate)
   MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
   CHAIN_MSG_MAP(CComControl<CAtlEdit>)
// Declare an alternate message map, identified by '1'
ALT_MSG_MAP(1)
   MESSAGE_HANDLER(WM_CHAR, OnChar)
END_MSG_MAP()

Поскольку содержащийся окно, m_EditCtrl, будет использоваться сопоставление сообщений во внешнем классе CAtlEdit является производным от CMessageMap.

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

Требования

Header: atlwin.h

См. также

Ссылки

Класс CDynamicChain

BEGIN_MSG_MAP

ALT_MSG_MAP

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

Общие сведения о классе библиотеки ATL