Re[4]: шаманство с созданием диалогов
От: Deonisy Россия  
Дата: 08.09.05 03:11
Оценка: 3 (1)
А на втором диалоге нет каких-нибудь экзотических контролов ? Что за диалог-то вообще ?
Re[6]: шаманство с созданием диалогов
От: Deonisy Россия  
Дата: 08.09.05 09:51
Оценка: 3 (1)
Ну совет может быть и банальный, но — проверь идентификатор ресурса, который ты передаешь ф-ии DialogBox() при создании диалога. Если идентификатор неправильный (т.е. он конечно может и существует в каком-нибудь из хедеров, но не имеет ни чего общего с диалогом, который ты хочешь создать), так и диалог естессно не будет создаваться.
Re: шаманство с созданием диалогов
От: Кодёнок  
Дата: 08.09.05 05:19
Оценка: 2 (1)
Здравствуйте, zagzig, Вы писали:

Z>Диалог должен был создаваться при получении сообщения WM_INITDIALOG. В случае с Windows 2000, это сообщение вообще не попадает в обработчик второго диалога(но другие сообщения обрабатываются),а в обработчик первого попадает!

Z>Помогите разобраться в этом шаманстве! Зараннее благодарен!

Самая типичная проблема — когда диалог содержит RichEdit и не создается из-за того что riched20.dll не загрузили. Или содержит treeview/listview и не создается из-за того, что не вызвали InitCommonControls.
шаманство с созданием диалогов
От: zagzig  
Дата: 07.09.05 15:54
Оценка:
Всем доброго времени суток!
В главном окне программы есть кнопки, по нажатию на которые запускаются соответствующие диалоги. В 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
Оценка:
Здравствуйте, Аноним, Вы писали:

А>>создаваться или инициализироватся?


А>судя по тому, что диалог создан в ресурсах, то инициализироваться


Имелось в виду создание окна диалога, если не понятно.
Re[5]: шаманство с созданием диалогов
От: zagzig  
Дата: 08.09.05 09:30
Оценка:
Здравствуйте, Deonisy, Вы писали:

D>А на втором диалоге нет каких-нибудь экзотических контролов ? Что за диалог-то вообще ?

В первом диалоге treeview, а во втором кнопки, ползунки, прогресс бары, чекбоксы и статические тексты
Re[2]: шаманство с созданием диалогов
От: Аноним  
Дата: 08.09.05 09:37
Оценка:
Кё>Самая типичная проблема — когда диалог содержит RichEdit и не создается из-за того что riched20.dll не загрузили. Или содержит treeview/listview и не создается из-за того, что не вызвали InitCommonControls.

RichEdit не используется. А диалог с treeview как раз работает без проблем. Почему-то в диалоговой процедуре не перехватывается сообщение WM_INITDIALOG (272)
Re: шаманство с созданием диалогов
От: zagzig  
Дата: 10.09.05 17:06
Оценка:
Спасибо всем, кто пытылся помочь решить мою проблему!
Убив почти сутки на поиск причины, решил действовать методом проб и ошибок. Делать всевозможные изменения в коде, и проверять: "Не заработало ли?"
По совету Deonisy, начал удалять поочередно контролы! После того, как удалил из диалога IP Control, диалог начал создаваться в 2000-ном!
Почему с ним не запускался диалог, понятия не имею! Самому до сих пор интересно! Может кто знает, расскажет?
Остальное стало делом техники, час на создание чего-то своего на подобии IP Control'а и его отладку и "дело в шляпе"!
Больше всего в этой ситуации обидно было, что при этом не выдавалось никакой ошибки! Лучше бы все упало и появилось большое красными буквами сообщение "Что такое IP Control я не знаю и работать не буду", чем такая партизанская тишина!
Еще раз спасибо всем кто помогал, ловите бонусы!
Re[2]: шаманство с созданием диалогов
От: Linuxoid  
Дата: 10.09.05 17:31
Оценка:
Здравствуйте, zagzig, Вы писали:

Z>Почему с ним не запускался диалог, понятия не имею! Самому до сих пор интересно! Может кто знает, расскажет?


Добавь такой код перед созданием диалога, и все заработает

icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
icex.dwICC  = ICC_INTERNET_CLASSES;
InitCommonControlsEx(&icex);
Re[3]: шаманство с созданием диалогов
От: Linuxoid  
Дата: 10.09.05 17:32
Оценка:
Здравствуйте, Linuxoid, Вы писали:

L>Добавь такой код перед созданием диалога, и все заработает


L>
L>icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
L>icex.dwICC  = ICC_INTERNET_CLASSES;
L>InitCommonControlsEx(&icex);
L>


Да, переменная icex объявляется так:
INITCOMMONCONTROLSEX icex;
Re[4]: шаманство с созданием диалогов
От: zagzig  
Дата: 10.09.05 17:34
Оценка:
L>>Добавь такой код перед созданием диалога, и все заработает

L>>
L>>icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
L>>icex.dwICC  = ICC_INTERNET_CLASSES;
L>>InitCommonControlsEx(&icex);
L>>


L>Да, переменная icex объявляется так:

L>
L>INITCOMMONCONTROLSEX icex;
L>


Спасибо, при возможности попробую!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.