Leider kenne ich mich mit C++ kein bisschen aus. Deswegen sagen mir weder diese Funktionen was noch die Variablen.
Na dann..
Delphi-Quellcode:
function dpi(nPix: Integer): Integer; (oder(LongInt ))
var
ratio: Single;
DC: HDC;
begin
if (ratio = 0)
then
begin
DC := GetDC(0);
ratio := (GetDeviceCaps(
DC, LOGPIXELSX) / 96.0);
ReleaseDC(0, hDC);
end;
result := nPix * ratio;
end;
ratio: Single;
global definieren.
Dafür brauche ich nicht mal ein Manifest.. muss halt nur drauf achten das ich jedes Control durch diese Funktion jage.
Zitat:
Du berechnest
l1 := 96/144*1575 = 1050
OH schreck das macht doch die Funktion GetDeviceCaps da muss man nichts berechnen.
GetDC(0) ist das
DC des Desktop.
Von der Auflösung des Desktop wird dann über GetDeviceCaps(GetDeviceCaps(
DC, LOGPIXELSX)) die DPI zurückgegeben.
Diese noch durch 96.0 teilen und fertig.
gruss