Автор
|
Тема: Не выводится диалоговое окно в VC++!
|
Master |
опубликован 01-12-2001 18:16 MSK
Не выводится диалоговое окно в VC++! VC++6.0Ent, W2KPro Eng, MFC Application Создаю ресурс диалогова окна, соответств. класс Дальше включаю необходимые "XXX.h" и т.д. Далее при нажатии на такую-то кнопку: КлассЭтогоХероваОкна newdialog; newdialog.Create(IDD_Херово_Окно, this); newdialog.ShowWindow(SW_SHOW); Но диалоговое окно исчезает сразу же после появления, причем никакие элементы на нём не прорисовываются (это можно увидеть, поставив после newdialog.ShowWindow(SW_SHOW); задержку Sleep(YYY);) Что делать? Как проблему решить? СПАСИБО ЗА ПОМОЩЬ!
|
DmitryRyvkin
|
опубликован 01-12-2001 18:31 MSK
Create нафиг. MyGoogDlg.DoModal()
|
Master
|
опубликован 01-12-2001 18:41 MSK
Да, DoModal() выводит окно и оно больше не закрывается, но окно выводится пустым - без каких-либо элементов!!! |
Master
|
опубликован 01-12-2001 18:54 MSK
Может MSVC++ переустановить? |
SUnteXx
|
опубликован 01-12-2001 20:47 MSK
А Вы случайно ActiveX не используете в диалоге? |
Master
|
опубликован 01-12-2001 22:20 MSK
Нет, не использую! |
DmitryRyvkin
|
опубликован 01-12-2001 23:34 MSK
Не может такого быть вообще. Напутали IDD что вообще то показывается ? удалите все остальные диалоги для проверки. |
Master
|
опубликован 02-12-2001 01:17 MSK
Ничего не перепутано!!! Показывается пустая(!!!!!) форма без кнопок и т.д. и сразу же закрывается (ну, если конечно же не заслипить)!!! Прочитал тут в одном факе, что 6.3.4. CDialog::Create() fails, what could be wrong? -Invalid HWND passed as a parent -Invalid dialog resource ID passed (be careful about numeric IDsvs. string IDs -- be careful with #define ID_MYDIALOG 0x1234 -- it is a "string" ID to the resource compiler). -One or more controls on your dialog could not be created, usually -Because of the use of a custom control that was not registered. -Calling EndDialog during the OnInitDialog message (or some other handler called early in the game)! -NULL HWND passed as parent when dialog has WS_CHILD style That's about all I can think of right now, Dean McCrory, MSMFC, 6/16/95 Думал, что скорее всего -One or more controls on your dialog could not be created, usually !!! Но оказалось, что если все элементы из формы убрать, то она тоже сразу же исчезнет после появления!!! Так что вопрос остаётся открытым!!!
|
DmitryRyvkin
|
опубликован 02-12-2001 10:31 MSK
Еще раз повторяю - используйте DoModal а не Create. Кстати Custom компонентов не лепили ? На худой конец пришлите мне ваши сурцы, найдем в чем собака зарыта dmitry_rv@mail.ru |
Kir1
|
опубликован 03-12-2001 13:01 MSK
КлассЭтогоХероваОкна newdialog; newdialog.Create(IDD_Херово_Окно, this); newdialog.ShowWindow(SW_SHOW); ага доходим до конца функции и уничтожается окошечко в деструкторе .... нужно делать так: это делай глобально или в классе где тебе нужно... КлассЭтогоХероваОкна *newdialog; //начало твоей функции newdialog = new КлассЭтогоХероваОкна; newdialog->Create(IDD_Херово_Окно, this); newdialog->ShowWindow(SW_SHOW); //конец твоей функции а потом когда тебе оно больше не будет нужно, то делай delete newdialog; |
Master
|
опубликован 03-12-2001 19:30 MSK
СПАСИБО!!! |