VStudio 2005 zu VStudio 2019: Unterschiedliche Darstellung der erzeugten Software



  • Hallo zusammen.
    Ich musste eine seltsame Entdeckung machen, als ich im Homeoffice mit meinem 4K-Bildschirm entwickle.

    Momentan arbeite ich mit beiden Entwicklungsumgebungen parallel, da ich ja möglichst bald auch komplett auf die neue umstellen möchte.
    Wegen vieler alter Systeme im Umlauf geht das noch nicht so einfach.
    Jedenfalls habe ich vor einiger Zeit meine alte Anwendung (aus dem Jahr 2005 bis jetzt weiter entwickelt) auf VS 2017 und dann 2019 umgezogen.

    Nun lasse ich die unter VS2019 erstellte EXE auf meine grossen Bildschirm laufen und die Anwendung ist total verhundst!
    Das Hauptfenster entspricht eigentlich der Grösse, die ich erwarten würde, da keine Arithmetik zur Grössenanpassung in meiner Anwendung verbaut ist.
    Auch die grafischen Buttons erscheinen in der Grösse, wie sie erstellt sind, mit der ursprünglichen Pixel-Abmessung, also klein.

    Die Schrift wird allerdings rauf skaliert, sodass sie grösser erscheint.
    Wenn ich einige Dialoge öffne, dann sind die zum Teil riesen gross aber die Schrift und Controlls irgendwie zu klein und auseinander gezogen.
    Manchmal verschwinden einige Controlls, da sie ausserhalb des Dialog-Rahmens liegen.
    Zwischendurch gibt es sogar Dialoge, die in "normalen Proportionen" erscheinen.

    Die mit VS 2005 erstellte Anwendung wird völlig korrekt rauf skaliert.
    Hier ist alles, wirklich alles korrekt, sogar die grafischen Buttons werden skaliert.
    Alles richtige Proportionen.
    Die Buttons sind zwar etwas verschwommen, da sie nur eine Pixel-Abmessung enthalten.
    Das gilt auch für die Schrift. Aber alles sieht jedenfalls (noch) gut aus.

    Kann mir das bitte jemand erklären?
    Und kann mir bitte auch jemand helfen, die Anwendung auch mit VS 2019 korrekt proportioniert zu bekommen.

    Vielen Dank für Eure Hilfe.

    PS: Auf einem normalen HD-Bildschirm (1920 Zeilenpixel) gibts den Effekt nicht.



  • Ich tippe mal auf "(4K) DPI awareness" und "(high DPI) GDI scaling", s. High DPI Desktop Application Development on Windows und Improving the high-DPI experience in GDI based Desktop Apps.

    Im Detail für WinAPI habe ich mich noch nicht damit beschäftigt (nur für WinForms mit C#), aber in den Artikeln sind raw WinAPI Codes enthalten (evtl. mußt du die WM_DPICHANGED Nachricht behandeln).



  • @Th69
    Vielen Dank schon mal Th69.
    Da werde ich etwas Zeit brauchen, ums richtig zu verstehen,
    vor allem, um das in die alte c++ Anwendung reinzubekommen.


Anmelden zum Antworten