Dlg im Dlg aber doch nicht drinne
-
Moin,
hab einen Dlg in meinem Dlg. Nun will ich bei OnSize den inneren Dlg ausrichten. Aber wenn ich mir mit "GetClientRect" vom Parent die Daten hohle ist mein "Client Dlg" immer ganz oben links in der Ecke (Sprich (0;0)).
Aber ich hab beim erstellen des "Client Dlg" als Parent "this" geschireben damit es wirklich ein Client ist.
Aber anscheinen ist er das doch nicht. Wenn ich nachträglich beim "Client Dlg" SetParent(this) bekomme ich n Ausnahmefehler *gr*.Kann mir einer weiter helfen?
-
mit "GetClientRect" vom Parent die Daten hohle
Wieso sollten sich bei GetClientRect die Daten des Parents ändern? Links oben ist und bleibt immer links oben.
Wie ermittelt man die Position des aktuellen Fensters innerhalb eines Parents?
CRect rc; clientDlg.GetWindowRect( rc); parentDlg.ScreenToClient( rc);
-
Ja Ne irgenwie verstehe ich das trosdem nicht. Leide kann ich das auch nicht richitg erklären was ich nicht versthe *gr*.
Also ich will in meinem "Parent Dlg" ein "Client Dlg" haben und der soll bei OnSize immer nur grade in den "Parent Dlg" passen.
So hab ich es versucht:
BOOL CParentDlg::OnInitDialog() { BOOL bReturn = CDialog::OnInitDialog(); m_pMyClientDlg = new CClientDlg(this, m_mypGAG); } void CParentDlg::OnSize(UINT nType, int cx, int cy) { CRect rc; GetClientRect(rc); m_pMyClientDlg = MoveWindow(rc); }So was nun passiert ist, dass mein "Client Dlg" nicht im "Parent Dlg" ist sondern oben rechts in der Ecke *gr*.
Versteht mich jetzt jemand *hoff*
-
Ups schreib fehler soll nicht:
m_pMyClientDlg = MoveWindow(rc);
heißen sondern
m_pMyClientDlg->MoveWindow(rc);
-
Wie führst Du denn den ClientDialog aus, mit DoModal() ?
-
Nein mit:
m_pMyClientDlg->Create(IDD_CLIENTFRAME, this);Ist das mein Fehler!?
-
Nein, bei mir funzt das ohne Probleme!
Hast Du vielleicht vergessen, Deinem ChildDialog im Resourceneditor den Stil untergeordnet zu geben?
-
BIG THX,
jo das war mein Fehler. Hätte ich niemals selber gefunden - obwohl das doch so einfach ist.
Schönen Tag noch - ich werd jetzt auf jeden fall einen haben *freu*