NOTIFY_HANDLER
Определяет запись в сопоставлении сообщений.
NOTIFY_HANDLER(
id,
cd,
func
)
Параметры
id
[in] Идентификатор элемента управления, отправляющий сообщение.cd
[in] Код уведомлений.func
[in] Имя функции обработчика сообщений.
Заметки
NOTIFY_HANDLER сопоставляет сообщение WM_NOTIFY к определенной функции обработчика, основанный на коде уведомления и идентификаторе элемента управления.
Любую функцию, определенную в макросе NOTIFY_HANDLER должны быть заданы следующим образом:
LRESULT NotifyHandler(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
Вызываются наборы bHandled сопоставления сообщения с TRUE перед NotifyHandler. Если NotifyHandler не полностью обрабатывает сообщение, оно должно установить bHandled к FALSE для указания необходимостей дальнейшую обработку сообщения.
Примечание
Всегда начинайте сопоставления сообщения с BEGIN_MSG_MAP.Затем можно объявить последующие другие сопоставления сообщения с ALT_MSG_MAP.Макрос END_MSG_MAP отмечает конец сопоставления сообщения.Каждое сопоставление сообщения должно иметь ровно один экземпляр BEGIN_MSG_MAP и END_MSG_MAP.
В дополнение к NOTIFY_HANDLER можно использовать MESSAGE_HANDLER для сопоставления сообщения WM_NOTIFY без учета идентификатора или кода. В этом случае MESSAGE_HANDLER(WM_NOTIFY, OnHandlerFunction) направит все сообщения WM_NOTIFY к OnHandlerFunction.
Дополнительные сведения об использовании сопоставления сообщения в библиотеке ATL см. в разделе сопоставления сообщения.
Пример
class CMyDialog2 : public CDialogImpl<CMyDialog2>
{
public:
enum { IDD = IDD_MYDLG };
BEGIN_MSG_MAP(CMyDialog2)
NOTIFY_HANDLER(IDC_TREE1, NM_CLICK, OnNMClickTree1)
END_MSG_MAP()
public:
// When a CMyDialog2 object receives a WM_NOTIFY message
// identified by IDC_TREE1 and NM_CLICK, the message is
// directed to CMyDialog2::OnNMClickTree1 for the actual
// processing.
LRESULT OnNMClickTree1(int /*idCtrl*/, LPNMHDR pNMHDR, BOOL& /*bHandled*/);
};
Требования
Header: atlwin.h