![]() |
|
|
![]()
|
|
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: нет Всего: 32 |
Когда я создаю CToolBar и помещаю на него кнопки, то они не активны, пока я для каждой не повешу обработчик. Как можно отключить такую медвежью услугу MFC?
У меня кнопки генерируются динамически, и обрабатывать их я бы хотел через ON_COMMAND_RANGE, но они не включаются. Это сообщение отредактировал(а) Cheloveck - 17.8.2010, 14:52 -------------------- ![]() |
|||
|
||||
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: нет Всего: 32 |
актуально
-------------------- ![]() |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Если есть обработчик на весь диапазон кнопок, то кнопки активируются, не важно через RANGE ты делаешь или поштучно. Если у тебя не так, ищи ошибку (дырку).
Отключить можно так: в самом удобном для тебе месте (фрейм, вью, документ), переопределяешь OnCmdMsg, для nCode ==CN_UPDATE_COMMAND_UI проверяешь ид-р на попадание в диапазон и активируешь переданный (через Extra) CCmdUI. И возвращаешь TRUE. -------------------- ... |
|||
|
||||
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: нет Всего: 32 |
Спасибо, помогло.
Дырок нет. После включения вторым способом, все обработчики выполняют свои действия. -------------------- ![]() |
|||
|
||||
| Cheloveck |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1578 Регистрация: 26.7.2008 Где: Тула Репутация: нет Всего: 32 |
Не, ошибка была. Оказывается ID элементов 2х-байтные, я генерировал значения выше. Странно, ведь в сообщениях ID приходят в 4-х байтных переменных.
-------------------- ![]() |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Не в сообщениях, а в обработчиках - чисто чтобы int не пилить.
А в сообщении WM_COMMAND ид-р вместе с кодом упаковывается в WPARAM, поэтому должен помещаться в WORD. -------------------- ... |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |