Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 28 января!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Возможности языков семейства Си по истине безграничны, однако, в этой свободе кроются и недостатки: всегда нужно программисту держать ухо востро и контроллировать "переполнение буфера", чтобы потом программа не вылетала в "синий экран" на массе разнообразных версий Windows и железа у пользователей. Те же крэкеры и реверсеры специально ищут в коде программ на Си уязвимости, куда можно подсадить любой вирусный код, об этом более подробно автор рассказывал в своём видеокурсе здесь. Я там многое узнал и теперь мой код стал значительно более безопасный.

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.



<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS