2010-08-09 6 views
2

Un point WIP MDIParent comporte de nombreux Wnd MDIchild, ainsi que quelques boîtes de dialogue enfant.Fenêtres spécifiques en cascade dans une application MDI MDI

Les boîtes de dialogue sont créées de cette façon --- CAutoDlg * pDlg = new CAutoDlg; pDlg-> Create (IDD_AUTOCARD, this);

Je souhaite mettre en cascade uniquement un type spécifique de boîtes de dialogue, disons uniquement les boîtes de dialogue de type CAutoDlg.

Si je donne MDICascade(), il cascades toutes les fenêtres enfants et boîtes de dialogue sous le MDIFrame. Existe-t-il d'autres moyens non conventionnels que d'appeler SetWindowPos pour chaque boîte de dialogue, en fonction de la position de la boîte de dialogue précédente?

Répondre

1

Il n'existe aucun moyen direct de le faire. Vous pouvez avoir une collection de CAutoDlg dans un conteneur. L'utilisation de ce conteneur appelle la fonction appropriée pour cascade. Vous pouvez utiliser le constructeur CAutoDlg pour ajouter un objet de dialogue dans ce conteneur et utiliser destructor pour supprimer la référence de dialogue du conteneur.