DPI Awareness: Setzen des Fenstertitels bei WS_EX_TOOLWINDOW funktioniert nicht



  • Folgendes Problem; Ich habe ein kleines Tool-Fenster, in dem ein paar Controls vorhanden sind. Als ich mit den Anzeigeskalierungen von Windows (Win 7) herumspielte, stellte ich ein paar kleinere GUI Fehler fest. Hier war mal ein Button zu klein, dort ein Edit Control. Nichts schlimmmes.

    Das Hauptproblem ist aber, dass der Fenster Titel bei einer Skalierung von 125% nicht mehr angezeigt wird.

    hWnd = CreateWindowEx(WS_EX_TOOLWINDOW,
    		"MyWindow", "",
    		WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_CLIPCHILDREN,
            x, y, nWidth, nHeight,
    		hParentWindow, nullptr, ghInstance, nullptr);
    SetWindowText(hWnd, "Test")
    

    Setze ich das Flag WS_EX_TOOLWINDOW nicht, wird der Fenster Titel richtig angezeigt.

    Wichtig:
    Die Windows Skalierung ist auch bekannt unter "Die Lesbarkeit auf dem Bildschirm erleichtern" bzw. "benutzerdefinierte Textgröße (DPI) festlegen". Um den Fehler anzuzeigen ist es wichtig die Option "DPI-Skalierung im Stil von Windows XP verwenden" aktiviert zu haben, oder in den Compiler Optionen das Flag "DPI aktivieren" zu setzen.


Log in to reply