在Windows 10,Delphi XE7中,当字体大小设置为> 100%,Delphi的屏幕[0] .workarea.rect返回反映字体缩放的尺寸。 E.G.,屏幕0的图形卡设置为1920x1080,屏幕[0] .workarea.rect.width返回1280(假设没有垂直任务栏等)。但是,由于字体缩放与1280是实际的图形卡设置,我找不到以编程方式确定宽度返回为1280的方法。任何人都可以告诉我如何做以下一个或多个 - 其中任何一个会给我我需要的信息来区分可能性:1)确定字体百分比是多少; 2)确定硬件分辨率是多少。
答案 0 :(得分:0)
GetDeviceCaps函数返回由索引定义的所选设备上下文的参数。
适用于Windows 7,为我的桌面提供真正的字体大小值(96 dpi是默认值"小字体100%")
dc := GetDC(0);
Memo1.Lines.Add(Format('hor res %d', [GetDeviceCaps(dc, HORZRES)]));
lp := GetDeviceCaps(dc, LOGPIXELSX);
Memo1.Lines.Add(Format('logx %d percents %d%%', [lp, 100 * lp div 96]));
hor res 1280
logx 120 percents 125%