C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Урок 32. Макрос ON_NOTIFY / Уроки C++ .NET / Visual C++ .NET

Visual C++.NET
Урок 32. Макрос ON_NOTIFY

На прошлом уроке мы использовали макрос ON_NOTIFY. Рассмотрим его более подробно.

Этот макрос имеет три параметра. Первый параметр - это сообщение, которое мы будем обрабатывать. Например, на прошлом уроке мы использовали этот макрос для обработчика щелчка на кнопке со стрелочкой на панели инструментов (вернее, не на кнопке, а на самой стрелочке). Так как при щелчке на стрелочке рядом с кнопкой посылается сообщение TBN_DROPDOWN, так что его мы и написали в качестве первого параметра.

Второй параметр макроса - это идентификатор элемента управления, для которого посылается сообщение. В нашем случае это была панель инструментов. Вообще говоря идентификатор AFX_IDW_TOOLBAR мы нигде в программе не задавали, но он по умолчанию задается именно такой в вызове в CMainFrame::OnCreate метода m_wndToolBar.CreateEx (это четвертый параметр этого метода).

Третий параметр макроса - это имя функции, которая будет обрабатывать наше сообщение. Его мы задали как OnDropDown. Разумеется, эту функцию нам надо было добавить, что мы и сделали. MSDN говорит, что она обязательно должна иметь следующий прототип:

afx_msg void memberFxn(NMHDR * pNotifyStruct, LRESULT * result);

Добавленная нами функция OnDropDown именно такой прототип и имеет.

Таким образом с помощью этого макроса мы задали, что сообщение TBN_DROPDOWN для панели инструментов AFX_IDW_TOOLBAR будет обрабатываться функцией OnDropDown.