请问如何判断当前显示模式下水平和垂直方向上每英寸等于几个象素?(100分)

  • 主题发起人 主题发起人 neural1208
  • 开始时间 开始时间
N

neural1208

Unregistered / Unconfirmed
GUEST, unregistred user!
请问如何判断当前显示模式下水平和垂直方向上每英寸等于几个象素?我看了Delphi的
文档,发现它只提供了垂直方向上的这个数值,即TScreen.PixelsPerInch,但是水平方向
上的值应该如何求取呢?
 
水平和垂直应该是一样的吧。
我一直用的公式是1px=0.01inch
1inch=180打印机象素(or 120由打印机设置确定,默认是180)
 
用WIN 工API GetDeviceCaps(

HDC hdc, // device-context handle
int nIndex // index of capability to query
);
 HORZRES Width, in pixels, of the screen.
  VERTRES Height, in raster lines, of the screen.
如 x:=GetDeviceCaps(xxxx.canvas.handle,HORZRES)
 
屏幕的水平和垂直分辨率是一样的
 
to zhukewen:
Delphi的文档中说:
"PixelsPerInch is only accurate for vertical measurements. Most screens have a
different scaling factor for horizontal measurements. The value in PixelsPerInch
is set from Windows when Delphi loads."

 
(screen.width) (screen.height);
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部