MESSAGE_HANDLER
Определяет запись в сопоставлении сообщений.
MESSAGE_HANDLER(
msg,
func
)
Параметры
msg
[in] Сообщение Windows.func
[in] Имя функции обработчика сообщений.
Заметки
MESSAGE_HANDLER сопоставляет сообщение Windows для указанной функции обработчика.
Любую функцию, определенную в макросе MESSAGE_HANDLER должны быть заданы следующим образом:
LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
Вызываются наборы bHandled сопоставления сообщения с TRUE перед MessageHandler.Если MessageHandler не полностью обрабатывает сообщение, оно должно установить bHandled к FALSE для указания необходимостей дальнейшую обработку сообщения.
Примечание |
---|
Всегда начинайте сопоставления сообщения с BEGIN_MSG_MAP.Затем можно объявить последующие другие сопоставления сообщения с ALT_MSG_MAP.Макрос END_MSG_MAP отмечает конец сопоставления сообщения.Каждое сопоставление сообщения должно иметь ровно один экземпляр BEGIN_MSG_MAP и END_MSG_MAP. |
В дополнение к MESSAGE_HANDLER можно использовать COMMAND_HANDLER и NOTIFY_HANDLER для сопоставления сообщения WM_COMMAND и WM_NOTIFY соответственно.
Дополнительные сведения об использовании сопоставления сообщения в библиотеке ATL см. в разделе сопоставления сообщения.
Пример
class CMyBaseWindow : public CWindowImpl<CMyBaseWindow>
{
public:
BEGIN_MSG_MAP(CMyBaseWindow)
MESSAGE_HANDLER(WM_CREATE, OnCreate)
END_MSG_MAP()
// When a CMyBaseWindow object receives a WM_CREATE message, the message
// is directed to CMyBaseWindow::OnCreate for the actual processing.
LRESULT OnCreate(UINT /*nMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/,
BOOL& /*bHandled*/)
{
return 0;
}
};
Требования
Header: atlwin.h