Вызов модального диалога из модального диалога
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 16.01.17 09:14
Оценка:
Есть диалога IDD_MYDIALOG1, которому соответствует переменная myDialog1 типа CMyDialog1. Этот диалог был вызван модальным образом:

CMyDialog1 myDialog1;
myDIalog1.DoModal();

На этом диалоге есть кнопка с надписью "Показать" IDC_BUTTON1, которой соответствует переменная m_IDC_BUTTON1 типа CButton. При нажатии на эту кнопку вызывается другой диалог--IDD_MYDIALOG2, которому соответствует переменная myDialog2 типа CMyDIalog2:

CMyDialog2 myDialog2;
myDIalog2.DoModal();

Вопрос: правильно ли я делаю, что открываю один модальный диалог из другого модального диалога? Если правильно, то какие особенности открытия одного модального диалога из другого модального диалога существуют? Если нет (то есть нельзя из одного модального диалога открыть другой модальный диалог), то как поступить в этом случае--например, какой диалог из этих двух открыть в немодальном режиме и т.п.?
1613 г. = 2024 г.
Re: Вызов модального диалога из модального диалога
От: aloch Россия  
Дата: 16.01.17 16:25
Оценка:
Здравствуйте, RussianFellow, Вы писали:

Все правильно, открывать модальный диалог из модального диалога можно. Ограничение здесь — только размер стека.


PS
Если ты, судя по вопросам, новичок, то зачем тебе вот этот вот MFC?


Re[2]: Вызов модального диалога из модального диалога
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 16.01.17 20:00
Оценка:
A>PS
A>Если ты, судя по вопросам, новичок, то зачем тебе вот этот вот MFC?

Учусь работать с MFC.
На практических задачах.
1613 г. = 2024 г.
Re[2]: Вызов модального диалога из модального диалога
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 17.01.17 05:44
Оценка:
Здравствуйте, aloch, Вы писали:

A>Все правильно, открывать модальный диалог из модального диалога можно. Ограничение здесь — только размер стека.


Такая проблема: из главного окна приложения при нажатии на кнопку "Рассчитать" вызывается консольное окно, в котором показывается процесс математических модальный вычислений и модальный диалог calcManDialog, на котором отображены четыре кнопки: "Остановить", "Показать", "Продолжить", "Выйти".

calcManDialog.DoModal();


После завершения математических вычислений пользователь может нажать на кнопку "Показать", чтобы ему высветился модальный диалог solutionDialog, в котором отображается решение математической задачи:

solutionDialog.DoModal();


На что у меня в отладчике выскакивает сообщение:

Debug Assertion Failed!

Program: C:\Windows\system32\mfc110d.dll
File: f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\winocc.cpp

Line: 329


Что это означает? Как исправить эту ошибку?
(Среда разработки--Visual Studio 2012, операционная система--Windows 7).
1613 г. = 2024 г.
Re[3]: Вызов модального диалога из модального диалога
От: anatolym  
Дата: 17.01.17 09:50
Оценка: -1
Здравствуйте, RussianFellow, Вы писали:

A>>PS

A>>Если ты, судя по вопросам, новичок, то зачем тебе вот этот вот MFC?

RF>Учусь работать с MFC.

RF>На практических задачах.

Есть у меня такое подозрение, что у тебя существует возможность выбора фреймворка для создания интерфейса.
И если это так, то я настоятельно рекомендую отказаться от MFC в пользу более удобной библиотеки — Qt.
Если же есть возможность выбора языка, то лучше смотреть в сторону связки C# + WinForms.
Критичные по производительности вычисления (если ~10% потери производительности это критично) можно оформлять в виде dll на C++.
Re[3]: Вызов модального диалога из модального диалога
От: aloch Россия  
Дата: 17.01.17 10:45
Оценка:
Здравствуйте, RussianFellow, Вы писали:


RF>На что у меня в отладчике выскакивает сообщение:


RF>

RF>Debug Assertion Failed!

RF>Program: C:\Windows\system32\mfc110d.dll
RF>File: f:\dd\vctools\vc7libs\ship\atlmfc\src\mfc\winocc.cpp

RF>Line: 329


Для начала пойти и посмотреть, что в этом файле и этой строке за ASSERT написан.


Re[4]: Вызов модального диалога из модального диалога
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 17.01.17 13:10
Оценка:
Проблема уже решена--я неправильно подавал данные в solutionDialog, которые потом выводились в текстовые поля в функции solutionDialog::OnInitDialog .
1613 г. = 2024 г.
Re[5]: Вызов модального диалога из модального диалога
От: aloch Россия  
Дата: 17.01.17 14:49
Оценка:
Здравствуйте, RussianFellow, Вы писали:

RF>Проблема уже решена--я неправильно подавал данные в solutionDialog, которые потом выводились в текстовые поля в функции solutionDialog::OnInitDialog .


Я как вспомнил сейчас про все эти OnInitDialog и прочие класс-визарды, так после WinForms прям дурно стало


Re[3]: Вызов модального диалога из модального диалога
От: Nikita123 Россия  
Дата: 18.01.17 07:37
Оценка:
Здравствуйте, RussianFellow, Вы писали:
RF>Такая проблема: из главного окна приложения при нажатии на кнопку "Рассчитать" вызывается консольное окно, в котором показывается процесс математических модальный вычислений и модальный диалог calcManDialog, на котором отображены четыре кнопки: "Остановить", "Показать", "Продолжить", "Выйти".
Что за бред? Зачем консольное окно вместе с диалогами? Вы что специально издеваетесь над пользователями своей программы?
Выводите все данные в поля диалога. Для этого есть много различных контролов.
И еще вопрос: что такое "процесс математических модальный вычислений"?
Желаю успеха,
Никита.
Re[4]: Вызов модального диалога из модального диалога
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 18.01.17 09:37
Оценка:
Здравствуйте, Nikita123, Вы писали:

N>И еще вопрос: что такое "процесс математических модальный вычислений"?


Извиняюсь, опечатка. Правильно: "процесс математических вычислений". Слово "модальный" там было лишнее.
1613 г. = 2024 г.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.