![]() |
|
![]() ![]() ![]() |
|
AndreySol |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 19.6.2004 Репутация: 1 Всего: 1 |
При добавлении через Wizard обработчиков для пунктов меню они обычно помещаются в раздел хедера "protected:" и в секцию
и вроде как не рекомендуется их изменение вручную. Или я не прав ? Мне нужно просто изменить
на
Корректно ли это ? |
||||||
|
|||||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Само-по себе слово afx_msg не значит ровно ничего - это чисто для крастоты. Вроде как показывает "это обработчик". Ты можешь переставлять обработчики в любую секцию: public\private и плевать на скобки типа //{{AFX_MSG(CThisClass) - это только для визарда.
Но вот сигнатуру обработчика менять нельзя: вызов поломается или просто не скомпилируется. Опять же, кто тебе будет iItemIndex поставлять, если предполагается вызов без параметров. А если ты хочешь сам вызывать удаление для любого итема, так напиши свою функцию и вызывай ее, в том числе из обработчика. -------------------- ... |
|||
|
||||
AndreySol |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 19.6.2004 Репутация: 1 Всего: 1 |
Ага, ясненько.
Спасибо за разъяснение. |
|||
|
||||
Nuzur |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 4.7.2004 Репутация: 3 Всего: 5 |
Earnest, можна менять сигнатуру, просто нужно и в .h .cpp поменять и все будет нормально, сам недавно так делал.
А вот почему если //{{AFX_MSG(CThisClass) ничего не значит мелкомягкие пишут: Handlers for Message-Map Ranges
-------------------- Never again... |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Nuzur, если так сделаешь, обработчики будут вызываться некорректно, т.к. вызов хандлера всегда подразумевает конкретную сигнатуру. Причем в 2003 и выше даже не скомпилируется (строка ON_XXX). А в 6-й студии скомпилируется, и в дебаге, возможно, иногда будет работать, а в релизи - падать.
-------------------- ... |
|||
|
||||
AndreySol |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 19.6.2004 Репутация: 1 Всего: 1 |
Ясно, Всем спасибо.
|
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |