BEGIN_MSG_MAP

BEGIN_MSG_MAP ( theClass )

Параметри

theClass

[в] Ім'я класу, який містить повідомлення карта.

Зауваження

Знаки початку повідомлення за замовчуванням. CWindowImpl::WindowProc використовує за замовчуванням повідомлення карти для процесу повідомлення, надіслані до вікна. Карта повідомлення направляє повідомлення до відповідних обробника функції або до іншого повідомлення карта.

Такі макроси карта повідомлення на функцію обробник. Цю функцію повинні бути визначені в theClass.

Макрос Опис
MESSAGE_HANDLER Карти повідомлення Windows на функцію обробник.
MESSAGE_RANGE_HANDLER Карти суцільний діапазон Windows повідомлень на функцію обробник.
COMMAND_HANDLER Карти WM_COMMAND повідомлення на функцію обробник, на основі коду сповіщень і ідентифікатор елемент меню, керування або прискорювач.
COMMAND_ID_HANDLER Карти WM_COMMAND повідомлення на функцію обробник, на основі ідентифікатора елемент меню, керування або прискорювач.
COMMAND_CODE_HANDLER Карти WM_COMMAND повідомлення на функцію обробник, на основі код повідомлення.
COMMAND_RANGE_HANDLER Карти суцільний діапазон WM_COMMAND повідомлень на функцію обробник, на основі ідентифікатора елемент меню, керування або прискорювач.
NOTIFY_HANDLER Карти WM_NOTIFY повідомлення на функцію обробник, на основі коду повідомлення та ідентифікатор елемента.
NOTIFY_ID_HANDLER Карти WM_NOTIFY повідомлення на функцію обробник, засновані на ідентифікатор елемента.
NOTIFY_CODE_HANDLER Карти WM_NOTIFY повідомлення на функцію обробник, на основі код повідомлення.
NOTIFY_RANGE_HANDLER Карти суцільний діапазон WM_NOTIFY повідомлень на функцію обробник, засновані на ідентифікатор елемента.

Такі макроси прямі повідомлення іншим повідомлення карту. Цей процес називається "ланцюжка".

Макрос Опис
CHAIN_MSG_MAP Ланцюги на карту повідомлення за промовчанням, у базовий клас.
CHAIN_MSG_MAP_MEMBER Ланцюги на карту повідомлення за промовчанням, у даних член класу.
CHAIN_MSG_MAP_ALT Ланцюгами до повідомлення альтернативний карта в базовий клас.
CHAIN_MSG_MAP_ALT_MEMBER Ланцюгами до повідомлення альтернативний карта в даних член класу.
CHAIN_MSG_MAP_DYNAMIC За промовчанням повідомлення карту в інший клас під час виконання ланцюга.

Приклад

клас CMyWindow:...
{
готелю:
 nbsp; ...

BEGIN_MSG_MAP(CMyWindow)
      MESSAGE_HANDLER (WM_PAINT, OnPaint)
      MESSAGE_HANDLER (WM_SETFOCUS, OnSetFocus)
      CHAIN_MSG_MAP(CMyBaseWindow)
   END_MSG_MAP()

LRESULT OnPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
   { ... }

LRESULT OnSetFocus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
   { ... }
}

Коли на CMyWindow об'єкт отримує на WM_PAINT повідомлення, повідомлення спрямовані на CMyWindow::OnPaint для обробки фактична. Якщо OnPaint позначає повідомлення вимагає подальшої обробки, повідомлення буде потім спрямувати на карту повідомлення за промовчанням уCMyBaseWindow.

На додаток до карта повідомлення за промовчанням можна визначити карту альтернативний повідомлення з ALT_MSG_MAP. Завжди починаються з BEGIN_MSG_MAPмапі повідомлення. Потім, ви можете оголосити наступні додаткові повідомлення карти. Наступний приклад показує повідомлення за замовчуванням та одне альтернативне повідомлення карті, кожна з яких містить одну функцію обробник:

BEGI&N_MSG_MAP(CMyClass)
 nbsp; MESSAGE_HANDLER (WM_PAINT, OnPaint)
ALT_MSG_MAP(1)
   MESSAGE_HANDLER (WM_SETFOCUS, OnSetFocus)
END_MSG_MAP()

Наступний приклад показує дві альтернативні повідомлення карти. Пусте повідомлення за замовчуванням.

BEGI&N_MSG_MAP(CMyClass)
ALT_MSG_MAP(1)
 nbsp; MESSAGE_HANDLER (WM_PAINT, OnPaint)
   MESSAGE_HANDLER (WM_SETFOCUS, OnSetFocus)
ALT_MSG_MAP(2)
   MESSAGE_HANDLER (WM_CREATE, OnCreate)
END_MSG_MAP()

END_MSG_MAP макрос означає кінець повідомлення карті. Зверніть увагу, що завжди є рівно один екземпляр BEGIN_MSG_MAP і END_MSG_MAP.

Щоб отримати додаткові відомості про використання повідомлення карти в ATL перегляньте Повідомлення карти в статті "Класи вікон ATL".

ATL макроси та глобальні функції

Дивіться також

CMessageMap, CDynamicChain

Index