Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.131 Beiträge
 
Delphi 12 Athens
 
#2

AW: ImageList_Draw im Modus DPIAware per monitor v2

  Alt 22. Sep 2022, 21:22
Ein Canvas hat ein DPI, egal wo es ist ... hier muß also jemand die DPI / Größe des Canvas anpassen, wenn es auf einen anderen Monitor verschoben wird.


Unaware : Anwendung malt mit fester DPI und Windows skaliert das Fenster du mußt garnichts beachten()

System : Anwendung nimmt die DPI vom primären Monitor, zum Programmstart / Windowslogin (und vielleicht skaliert Windows das Fenster, auf den anderen Monitoren)

Per-Monitor / Per-Monitor V2 : Die Anwendung nimmt die DPI von dem Monitor, auf der das Fenster zu über 50% (width&height) drauf ist
und Windows macht garnichts, weil Anwendung sagte ja es macht das selber ... macht es das nicht (richtig), dann Pech.

Zitat:
Most UI frameworks used by desktop applications (Windows common controls (comctl32), Windows Forms, Windows Presentation Framework, etc.) do not support automatic DPI scaling, requiring developers to resize and reposition the contents of their windows themselves.
Jemand muß also auf WM_DPICHANGED hören und dann die DPI und Größe/Position der Fenster/DC/Canvas selber anpassen.
Von den VCL-Standardcontrols erwarte erhoffe ich mir zwar von Delphi, dass es die DPI anpasst und ein Repaint des Canvas auslöst, aber gerade bei selbstgemaltem Zeugs mußt du natürlich aufpassen, denn wann hatte mal was funktioniert, was von Delphi kommt?


Frage: Wird WM_DPICHANGED durhc Windows auch gesendet, wenn das Fenster den Monitor wechselt, oder muß man darauf auch selber reagieren?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (22. Sep 2022 um 21:50 Uhr)
  Mit Zitat antworten Zitat