2. Fenster relativ zum Hauptfenster positionieren
-
Hallo,
ich habe folgendes Problem:
Ich möchte in einer Dialoganwendung ein zweites Fenster an die obere rechte Ecke meines Hauptfensters positionieren.
Code:
funktion OnInitDialog():
m_dlgPaint.Create(IDD_ZWEITESFENSTER, this);funktion in der das Zweite Fenster erscheint:
CHauptfensterDlg* pWnd;
pWnd = (CHauptfensterDlg*)GetDesktopWindow();
CRect lRect;
GetClientRect(lRect);
lRect.NormalizeRect();
m_dlgPaint.MoveWindow(lRect.right,lRect.top,lRect.Width(),lRect.Width() );
m_dlgPaint.ShowWindow(SW_SHOW);m_dlgPaint ist vom Typ CZweitesFensterDlg in CHauptfensterDlg aggregiert.
Mein Problem: Move Window wird von der oberen linken Ecke des Bildschirms und nicht von der des Hauptfensters ausgeführt. Also, das neue Fenster hängt irgendwo in der Luft, aber nicht da wo es sein soll.
Kann mir dabei jemand helfen?
thx
-
Du musst die Message WM_SIZE abfangen und dein Unterfenster entsprechend repositionieren...
-
Kannst Du das etwas genauer erklären?
thx
-
Hab mein Problem selbst gefunden:
Es muss natürlich GetWindowRect statt GetClientRect heissen, dann geht es.