У меня есть окно со следующими свойствами, установленными в файле .rc:
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
У него есть связанный класс (производный от CDialog), и когда я создаю его экземпляр, затем вызываю DoModal () этого объекта в
это не совсем модально - я могу нажать на «родительское» окно.
CMyDlg dlg;
int result = dlg.DoModal();
«Родительское» окно - это поле dlg, но оно рассматривается как главное окно. его свойства:
STYLE DS_SETFONT | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
CAPTION "My Main App"
MENU IDR_MENU_MAIN
Другие ящики dlg, которые я вызываю из главного окна с помощью DoModal, ХОЧУ оставить как не модальные. Но этот другой я хотел бы иметь модальный.
Я немного смущен тем, что происходит. Может кто-нибудь объяснить, как сделать так, чтобы этот "дочерний" блок dlg был модальным (в то время как другие "дети" не должны быть модальными?
Дополнительная информация:
Графический интерфейс для этого приложения не является основным потоком приложения. Это приложение командной строки, которое запускает другой поток и загружает DLL, в которой содержится графический интерфейс. Я не уверен, имеет ли это какое-либо отношение к проблеме.
Главное окно dlg == A
Это новое окно dlg я хочу вести себя как модальный == B
Другая коробка dlg == C
Внутри A: вызов B.DoModal не является модальным, но я бы хотел, чтобы это было
Внутри A: вызов C.DoModal не является модальным, и я хочу сохранить его таким образом
В C, если я вызываю D.DoModal, это модально, и я хочу сохранить его таким образом (чтобы приложение показывало модальную функциональность)
Более страшная информация
от А:
вызов стандартного файла открыть или сохранить как поля dlg приводят к НЕ МОДАЛЬНЫМ окнам dlg.
CFileDialog dlg(TRUE);
dlg.DoModal();
Это тоже нежелательно.
Похоже, что эти два вопроса имеют некоторые хорошие возможности для решения одной из проблем, но они НЕ касаются того, как убедиться, что стандартные файлы open / save, которые вызываются, являются модальными ...
Преобразование немодального диалога в модальное во время выполнения
Как создать модальное диалоговое окно в рабочем потоке (не в пользовательском интерфейсе)?