DPI Aware Missmatch



  • Hallo,

    mein Dialog wird über ein TeamSpeak AddOn geladen, das baut auf QT auf.
    Nach der Initalisierung der DLL erhalte ich die Möglichkeit einen eigenen Dialog
    abzubilden, der jedoch wird kitze klein auf dem skalierten 4K Monitor angezeigt.

    Nun habe ich versucht über Manifest DPI in allen 3 Modi umzuschalten ohne Erfolg.
    Auch ein embeded manifest via Pragma und LoadCommonControls brachte keine Resultate:
    #pragma comment(lib,"comctl32.lib")
    #pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='' publicKeyToken='6595b64144ccf1df' language=''\"")

    Was kann man noch ausprobieren das die UI elemente des Dialogs/Trees Tabs usw. Korrekt skaliert werden ?

    Ich kompiliere mit Visual Studio 2017 - Windows XP (v141_xp)
    als Multibyte static

    Danke für Hinweise
    Karsten aus Berlin


  • Mod

    Du irrst Dich über die Funktionsweise.

    Wenn "DPI aware" gesetzt ist, dann macht Windows an Deiner Anwendung nichts!
    Ansonsten kann die Anwendung gestreched werden, je nach Skalierung in den Systemeinstellungen.

    Grundsätzlich: DPIs bleiben DPIs und wenn Du einen 4K Monitor hast und Dein Font auf 8 Punkt eingestellt ist, und der Dialog das nicht ändern kann, dann hast Du eben winzig kleine Dialoge!

    Der Default Dialog Font skaliert (wird größer) wenn Du in den Einstellungen entsprechend auf 125% oder 150% gehst.



  • Ja Da hast Du recht, ich habe da öfters Probleme mit gehabt, nicht immer lässt sich dies über das Manifest steuern, vorallem wenn "man" als Dll geladen wird.

    Da habe ich ein Video hochgeladen: https://youtu.be/rfYI6v3g-hY

    Danke
    Gruß Karsten


Log in to reply