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.


Anmelden zum Antworten