Einzelnen Beitrag anzeigen

DelphiFan2008

Registriert seit: 4. Dez 2008
81 Beiträge
 
Delphi XE2 Starter
 
#3

AW: Grafik ausschneiden aus Fenster mit Fokus/Vordergrund

  Alt 17. Feb 2023, 10:59
Hallo,

danke für die Antwort.

Das Ausschneiden funktioniert grundsätzlich. Ich verwende einen Monitor mit Auflösung 3840 x 2160 und Skalierung Text 150% (Einstellungen/Bildschirm/Skalierung und Anordnung)

Die Funktionen ... liefern für das Fenster im Vordergrund
Code:
GetWindowRect( Handle, WindowRect );

GetClientRect( Handle, WindowRect );
liefern 2560 x 1377 mit angezeigter Taskleiste, 1417 ohne Taskleiste - 1440 sollte die skalierte Bildschirmhöhe sein. Das Delta ist wohl der Fenstertitel.

Beim Ausschnitt mit Bitblt muss ich die reale Auflösung (3840 x 2160) als Basis angeben z.B. Ausschneiden am rechten Rand.

Wie kann ich den Skalierungsfaktor oder die physikatische Auflösung abfragen?
Code:
GetSystemMetrics(SM_CXSCREEN)

GetSystemMetrics(SM_CYSCREEN)
liefert ebenfalls 2560 x 1440, also nicht wirklich 3840 x 2160

Gruß DelphiFan2008
  Mit Zitat antworten Zitat