Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.07.2018, 13:36   #1
erslgoeirjh
Форумчанин
 
Регистрация: 19.05.2009
Сообщений: 153
По умолчанию Не открываются диалоги в новой программе

У меня в старой программе (класс COldProgramDlg) были диалоги IDD_DIALOG1, IDD_DIALOG2,...,IDD_DIALOGN, которым соответствовали классы CDialog1, CDialog2,...,CDialogN.

Я создал новую программу, которой соответствует класс CNewProgramDlg. В неё я перетащил эти диалоги IDD_DIALOG1, IDD_DIALOG2,...,IDD_DIALOGN и соответствующие им классы CDialog1, CDialog2,...,CDialogN.
И эти диалоги у меня при вызове их функций DoModal из класса CNewProgramDlg не открываются--программа бьётся при их открытии. При этом в отладчике либо не выскакивает никаких сообщений вообще, либо выскакивает сообщение:

Цитата:
Debug Assertion Failed!
Program: C:\Windows\system32\mfc100d.dll
File: f:\dd\vctools\vc7libs\ship\atlmfc\s rc\mfc\dlgdata.cpp
В чём причина этого? Как сделать так, чтобы эти диалоги открывались в новой программе?
erslgoeirjh вне форума Ответить с цитированием
Старый 10.07.2018, 13:42   #2
erslgoeirjh
Форумчанин
 
Регистрация: 19.05.2009
Сообщений: 153
По умолчанию

P.S. Среда разработки--Visual Studio 2012.
erslgoeirjh вне форума Ответить с цитированием
Старый 10.07.2018, 13:46   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,694
По умолчанию

А айдишники в файл ресурсов добавили?
p51x вне форума Ответить с цитированием
Старый 10.07.2018, 16:55   #4
erslgoeirjh
Форумчанин
 
Регистрация: 19.05.2009
Сообщений: 153
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
А айдишники в файл ресурсов добавили?
Да, добавил.
erslgoeirjh вне форума Ответить с цитированием
Старый 10.07.2018, 17:01   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,694
По умолчанию

Какой номер строки в ошибке? Перейдите на него и посмотрите, что там за условие.
p51x вне форума Ответить с цитированием
Старый 13.07.2018, 08:42   #6
erslgoeirjh
Форумчанин
 
Регистрация: 19.05.2009
Сообщений: 153
По умолчанию

Такой вот вопрос.
Есть диалоговое приложение Visual C++ (среда разработки Visual Studio 2012), в котором существует главный класс диалога CMainDialog. В этом диалоге находится кнопка IDC_BUTTON1, которой соответствует переменная CButton1 в классе CMainDialog. При нажатии на эту кнопку вызывается диалог IDD_DIALOG1, которому соответствует класс CDialog1 , то есть:

Код:
void  CMainDialog::OnBn1ButtonClicked
{
    CDialog1  dialog1(this);
    dialog1.DoModal();
}
Диалог IDD_DIALOG1 нормально, без всяких проблем появляется на экране.
Но вот я решил создать ещё один диалог--IDD_DIALOG2, которому соответствует класс CDialog2, который должен вызываться по нажатию кнопки IDC_BUTTON2, которой соответствует переменная в классе CDialog1:

Код:
void  CDialog1::OnBn2ButtonClicked
{
    CDialog2  dialog2(this);
    dialog2.DOModal();
}
И в отладчике вместо появления диалога IDD_DIALOG2 попадаем сперва в файл dbgrptt.c на функцию _CrtDebugBreak:

Код:
_CRTIMP void __cdecl _CrtDbgBreak(
                                  void
                                  )
{
    __debugbreak;
}
а после, при нажатии на кнопку "Продолжить" в выскочившем окне отладчика--на файл dlgcore.cpp, на функцию CDialog::PreModal :

Код:
HWND  CDIalog:;PreModal()
{
    ASSERT(m_hWnd==NULL);
    CWinApp  pApp = AfxApp();
    if (pApp!=NULL)
        pApp->EnableModeless(FALSE);
    HWND  nWnd = CWnd:;GetSafeOwner_(m_pParent->GetSafeHwnd(),&m_hWndTop);
    AfxHookWindowCreate(this);
    return hWnd;
}
После этого, при нажатии на кнопку "Продолжить", попадаем ещё на какой-то файл и так далее.

В чём причина этого? Как сделать так, чтобы из диалога CDialog1 вызывался диалог CDialog2--то есть чтобы нормально появлялось диалоговое окно класса CDialog2 ?
erslgoeirjh вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Яндекс диалоги Ципихович Эндрю Свободное общение 0 23.06.2018 17:48
Формы и диалоги QT Pavia Qt и кроссплатформенное программирование С/С++ 1 08.08.2016 11:51
А можно ли в макросе подавить ненужные диалоги? vpm Microsoft Office Excel 2 14.11.2012 13:56
[WPF] OpenFileDialog и прочие диалоги. Casper-SC Общие вопросы .NET 0 11.06.2010 11:54
Диалоги открыть/закрыть файл Altera Операционные системы общие вопросы 3 03.12.2008 01:18