класс CMessageMap
CMessageMap — абстрактный базовый класс, который позволяет сообщение объекта карты будут иметь доступ к другим объектом. Для того чтобы объекта для представления его сообщения карт его класс должен быть производным от CMessageMap.
ATL использует CMessageMap для поддержки содержащихся windows и динамических сообщение цепочки карты. К примеру любой класс, содержащий CContainedWindow объект должен быть производным от CMessageMap. Следующий код взято из образец SUBEDIT . Через CComControl CAtlEdit класса автоматически является производным от CMessageMap.
класс CAtlEdit: государственные CComControllt;CAtlEdit >,...
/ / CComControl является производным от CWindowImpl,
/ / производный от CMessageMap
{
общественности:
/ / Объявить элемент данных содержит окно
CContainedWindow элемент m_EditCtrl;
/ / Инициализировать содержит окно:
// 1. Пройти «Изменить», чтобы указать, что замкнутых / / окно должно основываться на стандарте / / Windows Edit box
// 2. «This» элемент указателя для указания этого CAtlEdit / / содержит схеме сообщений для / / сообщение содержит окна выполнения
// 3. Передайте идентификатор схемы сообщений. В
/ / в данном случае, «1» идентифицирует схеме сообщений
/ / с ALT_MSG_MAP(1)
CAtlEdit(): m_EditCtrl(_T("EDIT"), этот, 1)
{
m_bWindowOnly = TRUE;
}
/ / Объявить схеме сообщений по умолчанию
BEGIN_MSG_MAP(CAtlEdit)
MESSAGE_HANDLER (WM_PAINT, OnPaint)
...
/ / Объявить схема альтернативного сообщений
/ / выявлены «1»
ALT_MSG_MAP(1)
MESSAGE_HANDLER (WM_CHAR, OnChar)
END_MSG_MAP()
...
};
Потому что содержит окно, m_EditCtrl , будут использовать карту сообщений в содержащего класса CAtlEdit является производным от CMessageMap.
Дополнительные сведения о сообщении карт Карт сообщение в разделе статьи "Окно классов ATL."
# include lt;atlwin.h>
См. такжеnbsp;CDynamicChain, BEGI&N_MSG_MAP, ALT_MSG_MAP