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 макроси та глобальні функції
Дивіться також