| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Помогите с WM_NOTIFY |
| Автор: yngwie19 20.1.2009, 23:32 |
| Всем привет. В книге Финогенова "Основы программирования WIN32 ", описывается механизм распаковщиков сообщений или макросов сообщений. В частности дается макрос HANDLE_MSG(hwnd, WM_NOTIFY,OnNotify), однако Я не могу найти где он определен, чтобы посмотреть как он разворачивается. Вообще другие используемые в книге макросы Я смотрел в windowsx.h, но как разворачивается WM_NOTIFY Я там не нашел. Может подскажите где он тогда определен? |
| Автор: dumb 21.1.2009, 04:28 |
| http://msdn.microsoft.com/en-us/library/bb775595(VS.85).aspx |
| Автор: yngwie19 21.1.2009, 07:40 |
| dumb, Спасибо. |
| Автор: yngwie19 21.1.2009, 22:01 |
| Ребят подскажите как расшифровывается тип одно из параметром этого сообщения - LPNMHDR. Может так его легче будет запомнить. |
| Автор: S.A.G. 21.1.2009, 22:09 | ||
Длинный указатель на структуру NMHDR. В том же Финогенове рассказывается и о венгерской нотации.
Структура содержит инфу о произошедшем событии. hwndFrom - хэндл того, от кого пришло, idFrom - его id, code - код уведомления. |
| Автор: yngwie19 21.1.2009, 22:25 | ||
S.A.G., кстати по Финогенову, не работает следующая фишка:
Вот ошибка : error C2039: 'idForm' : is not a member of 'tagNMHDR'. У Финогенова много таких мест. НЕ понятно каким он кмпилятором пользовался когда эту книгу писал. Подскажите ребят почему не происходит преобразование ? |
| Автор: S.A.G. 21.1.2009, 22:28 |
| А если так: hdr->idForm? |
| Автор: yngwie19 21.1.2009, 22:28 |
| LPNMHDR ну LP это понятно длинный указатель (просто указатель) не понятно MN че такое ну и HDR эта структура, которая также должна расшифровываться Добавлено через 3 минуты и 18 секунд S.A.G., это понятно что так сработает. Т.к структура TOOLTIPTEXT содержит один из элементов структуру hdr. Но есть поля которые нужно заполнить именно через указатель на TOOLTIPTEXT Добавлено через 4 минуты и 55 секунд по-ходу нужно какой-то хэдер еще подрубать |
| Автор: yngwie19 21.1.2009, 22:39 |
| mes, все равно даже так. Таже самая ошибка |
| Автор: mes 21.1.2009, 22:44 |
| а если с #include <winuser.h> ? |
| Автор: yngwie19 21.1.2009, 22:48 | ||
сделал так:
теперь пишет другое: error C2039: 'idFrom' : is not a member of 'tagNMTTDISPIFNOA' что за нафиг. Ребят подскажите в каком хэдере описан LPTOOLTIPTEXT ? |
| Автор: mes 21.1.2009, 23:00 | ||
| http://msdn.microsoft.com/en-us/library/aa297203(VS.60).aspx Добавлено @ 23:02 фактически то же самое что и LPTOOLTIPTEXT
|
| Автор: yngwie19 21.1.2009, 23:08 |
у меня подключен <windows.h>, он черех него подключается. Нет все равно не работает |
| Автор: mes 21.1.2009, 23:09 | ||||
UINT_PTR idFrom; следовательно :
|
| Автор: yngwie19 21.1.2009, 23:20 |
| mes, Спасибо тебе огромное Я разоьрался |
| Автор: yngwie19 21.1.2009, 23:53 |
| NMHDR расшифровывается как Notify Message Header |
| Автор: mes 21.1.2009, 23:56 |
| Автор: yngwie19 22.1.2009, 00:08 |
| mes, ну да именно так. |
| Автор: Dem_max 22.1.2009, 05:40 | ||
|