Каскадные определенные окна в приложении MFC MDI - PullRequest
2 голосов
/ 09 августа 2010

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

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

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

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

1 Ответ

1 голос
/ 20 июля 2011

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

...