клас CMessageMap
CMessageMap є абстрактних базового класу, що дозволяє об'єкта повідомлення карти буде доступний на іншому об'єкті. Щоб об'єкт піддавати свої карти повідомлення його клас повинен отримати з CMessageMap.
ATL використовує CMessageMap для підтримки міститься windows і динамічний повідомлення карта ланцюжка. Наприклад, будь-який клас, який містить об'єкт CContainedWindow повинні отримати з CMessageMap. Наступний код взято з у SUBEDIT зразка. Через CComControlу CAtlEdit клас автоматично походить від CMessageMap.
клас CAtlEdit: Громадська CComControllt;CAtlEdit >,...
/ / CComControl походить від CWindowImpl,
/ / якого походить від CMessageMap
{
готелю:
/ / Оголосити членом даних міститься вікно
CContainedWindow m_EditCtrl;
/ / Ініціалізація вікні міститься:
// 1. Пройти "Змінити", щоб указати, що містяться в / / вікна повинні бути засновані на стандартний / / Windows змінити поле
// 2. Передавати "це" вказівник миші, щоб вказати, що 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".
# включити lt;atlwin.h>
Дивіться такожnbsp;CDynamicChain, BEGI&N_MSG_MAP, ALT_MSG_MAP