CMessageMap

клас 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

Index