Ну совет может быть и банальный, но — проверь идентификатор ресурса, который ты передаешь ф-ии DialogBox() при создании диалога. Если идентификатор неправильный (т.е. он конечно может и существует в каком-нибудь из хедеров, но не имеет ни чего общего с диалогом, который ты хочешь создать), так и диалог естессно не будет создаваться.
Здравствуйте, zagzig, Вы писали:
Z>Диалог должен был создаваться при получении сообщения WM_INITDIALOG. В случае с Windows 2000, это сообщение вообще не попадает в обработчик второго диалога(но другие сообщения обрабатываются),а в обработчик первого попадает! Z>Помогите разобраться в этом шаманстве! Зараннее благодарен!
Самая типичная проблема — когда диалог содержит RichEdit и не создается из-за того что riched20.dll не загрузили. Или содержит treeview/listview и не создается из-за того, что не вызвали InitCommonControls.
Всем доброго времени суток!
В главном окне программы есть кнопки, по нажатию на которые запускаются соответствующие диалоги. В Windows XP оба диалога на ура запускаются, но при запуске программы под 2000 первый диалог запускается, а второй нет!
Диалог должен был создаваться при получении сообщения WM_INITDIALOG. В случае с Windows 2000, это сообщение вообще не попадает в обработчик второго диалога(но другие сообщения обрабатываются),а в обработчик первого попадает!
Помогите разобраться в этом шаманстве! Зараннее благодарен!
Re: шаманство с созданием диалогов
От:
Аноним
Дата:
07.09.05 16:09
Оценка:
Здравствуйте, zagzig, Вы писали:
Z>Всем доброго времени суток! Z>В главном окне программы есть кнопки, по нажатию на которые запускаются соответствующие диалоги. В Windows XP оба диалога на ура запускаются, но при запуске программы под 2000 первый диалог запускается, а второй нет! Z>Диалог должен был создаваться при получении сообщения WM_INITDIALOG.
создаваться или инициализироватся?
Re[2]: шаманство с созданием диалогов
От:
Аноним
Дата:
07.09.05 16:24
Оценка:
А>создаваться или инициализироватся?
судя по тому, что диалог создан в ресурсах, то инициализироваться
Re[3]: шаманство с созданием диалогов
От:
Аноним
Дата:
07.09.05 16:54
Оценка:
Здравствуйте, Аноним, Вы писали:
А>>создаваться или инициализироватся?
А>судя по тому, что диалог создан в ресурсах, то инициализироваться
Имелось в виду создание окна диалога, если не понятно.
Здравствуйте, Deonisy, Вы писали:
D>А на втором диалоге нет каких-нибудь экзотических контролов ? Что за диалог-то вообще ?
В первом диалоге treeview, а во втором кнопки, ползунки, прогресс бары, чекбоксы и статические тексты
Re[2]: шаманство с созданием диалогов
От:
Аноним
Дата:
08.09.05 09:37
Оценка:
Кё>Самая типичная проблема — когда диалог содержит RichEdit и не создается из-за того что riched20.dll не загрузили. Или содержит treeview/listview и не создается из-за того, что не вызвали InitCommonControls.
RichEdit не используется. А диалог с treeview как раз работает без проблем. Почему-то в диалоговой процедуре не перехватывается сообщение WM_INITDIALOG (272)
Спасибо всем, кто пытылся помочь решить мою проблему!
Убив почти сутки на поиск причины, решил действовать методом проб и ошибок. Делать всевозможные изменения в коде, и проверять: "Не заработало ли?"
По совету Deonisy, начал удалять поочередно контролы! После того, как удалил из диалога IP Control, диалог начал создаваться в 2000-ном!
Почему с ним не запускался диалог, понятия не имею! Самому до сих пор интересно! Может кто знает, расскажет?
Остальное стало делом техники, час на создание чего-то своего на подобии IP Control'а и его отладку и "дело в шляпе"!
Больше всего в этой ситуации обидно было, что при этом не выдавалось никакой ошибки! Лучше бы все упало и появилось большое красными буквами сообщение "Что такое IP Control я не знаю и работать не буду", чем такая партизанская тишина!
Еще раз спасибо всем кто помогал, ловите бонусы!