2010-08-09 3 views
2

В MDIParent Wnd есть много MDIchild Wnds, а также несколько дочерних диалогов.Каскадирование определенных окон в приложении MFC MDI

Диалоги создаются таким образом --- CAutoDlg * pDlg = new CAutoDlg; pDlg-> Создать (IDD_AUTOCARD, это);

Я хочу каскадировать только определенный тип диалогов, например, только диалоги типа CAutoDlg.

Если я даю MDICascade(), он каскадирует все дочерние окна и диалоги под MDIFrame. Есть ли какой-либо другой нетрадиционный способ, кроме вызова SetWindowPos для каждого диалога, в зависимости от положения предыдущего диалога?

ответ

1

Нет прямого способа сделать это. У вас может быть коллекция CAutoDlg в некоторый контейнер. Используя этот контейнер, вызовите соответствующую функцию для каскадирования. Вы можете использовать конструктор CAutoDlg для добавления объекта диалога в этот контейнер и использовать деструктор для удаления ссылки на диалог из контейнера.

Смежные вопросы