Win32 Window Border entfernen und wieder hinzufügen



  • Hallo ihr Lieben,

    ich habe ein kleines Problem mit dem Hinzufügen und Enfernen der Ränder meines Fensters. Mein Code sieht so aus:

    m_fullscreen = !m_fullscreen;
    if (m_fullscreen)
    {
    	SetWindowLong(m_appWnd, GWL_STYLE, WS_POPUP | WS_VISIBLE);
    	MoveWindow(m_appWnd, 0, 0, SCREENWIDTH, SCREENHEIGHT, TRUE);
    }
    else
    {
    	RECT rect = { 0, 0, (LONG)CLIENTWIDTH, (LONG)CLIENTHEIGHT };
    	UINT width = rect.right - rect.left;
    	UINT height = rect.bottom - rect.top;
    	UINT x = (SCREENWIDTH - width) / 2;
    	UINT y = (SCREENHEIGHT - height) / 2;
    	m_windowPosition = { (LONG)x, (LONG)y };
    	SetWindowLong(m_appWnd, GWL_STYLE, WS_BORDER | WS_SYSMENU | WS_VISIBLE);
    	MoveWindow(m_appWnd, x, y, width, height, TRUE);
    }
    

    Das Vergrößern und verkleinern klappt wie gewollt, allerdings erscheind der Rand nicht mehr, nachdem ich Ichn einmal entfernt habe (Ich weis natürlich dass ich das Fender auf in den Vollbildmodus setzen kann, möchte es aber lieber als randloses Fenster haben). Wie ich beobachten konnte, bleibt die Höhe des Fensters gleich, der Rand wird also quasi übergemalt. Ich hoffe jemand von euch weis, wie ich das Problem lösen kann.

    Vorab schon einmal danke,
    Lucas.



  • Wenn ich mich recht erinnere muss man danach noch SetWindowPos aufrufen.



  • Ändert leider Nichts 😕




Log in to reply