Seitenverhältnis bei WM_SIZE beibehalten
-
Ich möchte, dass die Höhe und Breite meines Fensters beim Ändern der Größe immer in einem bestimmten Verhältnis bleibt.
Wie geht das?
-
WM_SIZING auswerten, bspw. wenn die Breite doppelt so groß sein soll wie die Höhe und das Fenster an der rechten Seite vergrößert wird:
case WM_SIZING: { const float scale = 2.f; LPRECT pRect = reinterpret_cast<LPRECT>(lParam); switch(wParam) { case WMSZ_RIGHT: pRect->bottom = (pRect->right-pRect->left)/scale; break; } return 1; }
Müsste natürlich erweitert und ergänzt werden (was soll passieren, wenn pRect->bottom größer als die horizontale Auflösung ist? -> pRect->top müsste angepasst werden); fertige Lösungen gibt es mit Sicherheit bei Codeproject.com und Konsorten.