Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Accelerator vs MFC MDI, Горячие клавиши работают если нет фрейма 
:(
    Опции темы
cs137
Дата 11.2.2008, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 22.8.2007

Репутация: нет
Всего: нет



Привет всем!!!
Никто случаем не сталкивался с такой проблемой:
Вдруг неожиданно оказалось smile, что в моей проге (MDI) горячие клавиши меню работают только если нет ни одного фрейма (т.е. MDI чайлда). В противном же случае все это дело работает нормально... Проверил ресурсы и код, но за что-нить этакое зацепиться не могу :(
Спасибо!
PM MAIL   Вверх
Earnest
Дата 12.2.2008, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Мало информации...
Акселераторы должны работать независимо от наличия MDI-окон...
Возможно, при создании чайлд-фрейма его таблица акселераторов пуста и заменяет собой таблицу акселераторов главного окна?
Пошарь отладчиком в главном цикле (MFC), обращая внимание именно на обработку акселераторов.


--------------------
...
PM   Вверх
cs137
Дата 12.2.2008, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 22.8.2007

Репутация: нет
Всего: нет



Я создал новый MDI проект, чтобы сравнить со своим, но опять ничего не добился. По коду, таблице акселераторов чайлд фрейма присваивается значение из DocTemplate и значение это 0. Если создать отдельную таблицу для чайлда, то тогда присваиваемое значение таблицы не будет равно 0. Но то не зависимо от жэтого я получаю же результат :( Горячии клавиши перестают работать, т.е. таблица акселераторов отваливается.
Причем в новом проекте, если переопределить клавишу например, открытия чайлда на Ctrl+N, то при существовании чайлд фрейма работает комбинация как Ctrl+N (из таблицы акселераторов для майн фрейма), так и Ctrl+T (из таблицы акселераторов для чайлд фрейма). Вообще ничего не понимаю :(
PM MAIL   Вверх
cs137
Дата 13.2.2008, 07:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 22.8.2007

Репутация: нет
Всего: нет



Все, разобрался smile У меня вьюха базируется на CFormView, и на ней я еще создаю диалоги... так вот, оказалось, что один из диалогов перехватывал нажатие клавишь, потому-то горячие клавиши и не работали smile
Дико извиняюсь smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0697 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.