![]() |
|
|
![]()
|
|
| Egoryan |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 22.7.2006 Репутация: нет Всего: нет |
Всем Доброго времени суток.
Создаю я диалог с помощью CreateIndirect. На нем TabCtrl(в каждом из них тоже по CDialog). Возникла такая проблема. Не вызывается PreTranslateMessage в диалогах(чтобы с помощью таба можно было перемещаться по контролам). Помогите пожалуйста! Заранее спасибо! |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Почему ты решил, что не вызывается?
-------------------- ... |
|||
|
||||
| Egoryan |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 22.7.2006 Репутация: нет Всего: нет |
Ну потому что BOOL CABCDialog::PreTranslateMessage(MSG* msg) { AfxMessageBox("123"); CDialog::PreTranslateMessage(msg); } messagebox ни разу не вызвался. |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Если у тебя правильно построенное MFC-приложение, и диалог ты запускаешь через MFC-средства, то PreTranslate вызываться должна - она вызывается из главного цикла обработки сообщений или из цикла DoModal.
Так что вижу 2 возможных причины: 1) Что-то не так с переопределением виртуальной функции. Чтобы проверить - поставь точку прерывания в CDialog::PreTranslateMessage. Если туда попадешь, а к себе нет - проверь определение PreTranslate у себя, наследование, перекомпилируй проект, ... бывает всякое. Если не попадаешь, то см. далее: 2) Проверь, как выполняется главный цикл.... Еще мысль: если ты имеешь в виду те диалоги, которые детями сидят в tab-контроле, то PreTranslate такому диалогу может прийти только, если его собственный чайлд находится в фокусе. Посмотри, как устроены вызовы PreTranslate (в CWinThread), и тебе многое станет понятно. -------------------- ... |
|||
|
||||
| Egoryan |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 22.7.2006 Репутация: нет Всего: нет |
Все бы хорошо,но я окно упаковываю в DLL Обычную.
|
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Если у тебя Extension DLL + MFC приложение, то все равно должно работать.
А если нет (хотя бы одно условие), но PreTranslate вызываться не будет: это свойство MFC-Оболочки, и без фреймворка оно не работает. -------------------- ... |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |