Ähm hast du dir die Beispielscripte aus dem Link von UEZ angeschaut? Die dort verwendete Funktion _GDIPlus_GraphicsGetDPIRatio() Gibt dir das abweichende Verhältnis der DPI zum Standardwert. Damit kannst du die korrekte Schriftgröße wie im Beispiel berechnen.
Solltest du also neben der Standard GUI Schriftgröße noch weitere vom Standard abweichende Controls nutzen dann verwende dort eben ebenfalls den ermittelten DPI Abweichungsfaktor.
Das dachte ich mir auch, habs aber nicht hinbekommen
*Edit*: Habs doch noch hinbekommen: Search and Replace GUICtrlSetFont(-1, 12, mit GUICtrlSetFont(-1, 12 * _GDIPlus_GraphicsGetDPIRatio()[0], hat halbwegs funktioniert. Warum halbwegs? Das "Fett" sieht anders aus und ein ganz kleines Bisschen passts von der Skalierung nicht, aber ich habe die entsprechenden Labels um wenige Pixel länger gemacht, nun passt alles - dass das Fette anders ausschaut, ist mir egal.
GUISetFont($MainForm, 12.0 * _GDIPlus_GraphicsGetDPIRatio()[0]) verwende ich nun gar nicht mehr, sondern mache es überall über GUICtrlSetFont(-1, 12 * _GDIPlus_GraphicsGetDPIRatio()[0], ...
Hier mal meine Version von GetDPI()...
Deine Demo funktioniert bei normaler DPI gut, bei 125% sieht die GUI aber wie folgt aus:
Spoiler anzeigen
Das ist ja aber genau, was ich zu verhindern versuche, dass die Texte bei anderer DPI-Einstellungen nicht mehr richtig/vollständig angezeigt werden.