Поиск:

Ответ в темуСоздание новой темы Создание опроса
> не открывается окошко. MFC 
:(
    Опции темы
bilbobagginz
Дата 17.1.2007, 04:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


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

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



Здравствуйте.
есть приложение MFC, приложение - диалоговое, т.е. 
CWinApp имеет переменную порожденную от типа CDialog
после создания данной переменной, происходит вызов:
Код

    MyDlg dlg;
    m_pMainWnd = &dlg;
    INT_PTR nResponse = dlg.DoModal();

проект собирается, без проблем, но окно не открывается.
реализован метод OnInitDialog(). я поставил брейк-пойнт внутри нее, но контроль не доходит до этой функции. После конструктора программа выходит до CWinApp, и вызывает DoModal().

на что посмотреть, чтобы окно открывалось ?




--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
zkv
Дата 17.1.2007, 05:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

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



а приложение мастером собиралось? Что то не могу представить что такое может быть, разве только что невидимый создается. 
Цитата(bilbobagginz @  17.1.2007,  04:06 Найти цитируемый пост)
После конструктора программа выходит до CWinApp, и вызывает DoModal().
 Так это все по плану, а DoModal() уже каким то боком должен вызвать OnInitDialog()

а что возвращает DoModal()?
и прога как себя ведет, запускается и сразу завершается, или виснет, или что? smile

Это сообщение отредактировал(а) zkv - 17.1.2007, 05:48
PM MAIL   Вверх
bilbobagginz
Дата 17.1.2007, 05:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


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

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



DoModal() возвращает -1


--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
hamsterKSU
Дата 17.1.2007, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 401
Регистрация: 20.10.2006
Где: Украина, Херсон

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



код класса MyDlg.cpp покажи всетаки
PM MAIL ICQ   Вверх
zkv
Дата 17.1.2007, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

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



Цитата(hamsterKSU @  17.1.2007,  17:57 Найти цитируемый пост)
код класса MyDlg.cpp покажи всетаки 

думаю ни о чем не скажет, интуиция подсказывает, что проблемы с ресурсами. Надо весь проект. Или создать новый и в нем воссоздать ошибку (на этом этапе проблема вероятно решится сама собой smile )
PM MAIL   Вверх
En_t_end
Дата 17.1.2007, 19:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



bilbobagginz, 
InitCommonControls(); вызови её перед открытием диалога. ИМХО
PM MAIL ICQ Skype GTalk Jabber   Вверх
bilbobagginz
Дата 17.1.2007, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


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

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



в основном приложении ( порожденное от CWinApp )
вызывается:

Код

BOOL MyApp::InitInstance(){
    INITCOMMONCONTROLSEX InitCtrls;
    InitCtrls.dwSize = sizeof(InitCtrls);
    InitCtrls.dwICC = ICC_WIN95_CLASSES;
    InitCommonControlsEx(&InitCtrls);
    CWinApp::InitInstance();
    // потом создаётся мой диалог:
    MyDlg dlg;
    m_pMainWnd = &dlg;
    INT_PTR nResponse = dlg.DoModal();
// и потом обрабатывается результат,
// т.е. это единственное место, до которого я дотронулся в этом методе:
    switch (nResponse){
        case IDOK:
        // TODO: Place code here to handle when the dialog is
        //  dismissed with OK
        break;
        case IDCANCEL:
        // TODO: Place code here to handle when the dialog is
            //  dismissed with Cancel
        break;
        default:
            return FALSE;
    }
    return FALSE;
}



--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
zkv
Дата 17.1.2007, 22:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

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



могу только посоветовать по шагам пройти по внутренностям DoModal() (Step Into) посмотреть что там происходит, особенно с ресурсами smile
PM MAIL   Вверх
bilbobagginz
Дата 17.1.2007, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


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

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



Цитата

могу только посоветовать по шагам пройти по внутренностям DoModal() (Step Into) посмотреть что там происходит

сделал, но я не знаю что ДОЛЖНО быть, когда всё работает правильно.
на что именно смотреть ? можно поточнее ?




--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
Earnest
Дата 18.1.2007, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Для начала должно успешно проходить стадию создания и входить в модальный цикл (вызывать RunModalLoop).
-1 возвращается либо если не найден шаблон:
Код

    // return -1 in case of failure to load the dialog template resource
    if (lpDialogTemplate == NULL)
        return -1;

либо если падает исключение:
Код

    CATCH_ALL(e)
    {
        DELETE_EXCEPTION(e);
        m_nModalResult = -1;
    }

Ну и, теоретически, хто-то может вызвать EndDialog(-1)...


--------------------
...
PM   Вверх
bilbobagginz
Дата 20.1.2007, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Naughtius Maximus
****


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

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



Спасибо, я воспользовался знаниями zkv.




--------------------
Я ещё не демон. Я только учусь.
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




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


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

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