关于获取屏幕的水平宽度(30分)

  • 主题发起人 主题发起人 mllee
  • 开始时间 开始时间
M

mllee

Unregistered / Unconfirmed
GUEST, unregistred user!
我用的是GetDeviceCaps(hdc, HORZSIZE)。既然屏幕的物理尺寸是不变的,所以这<br>个返回值应该也不变。事实上其返回值是随分辨率的变化而变化的,但二者比值基<br>本不变(GetDeviceCaps(hdc, HORZRES) / GetDeviceCaps(hdc, HORZSIZE) 约为 <br>3.79)。<br>不知这是怎么回事?究竟应该怎样得到屏幕的物理尺寸?<br>thanks
 
GetDeviceCaps<br>返回的是分辨率。<br>如 640*480 或 800*600等。<br>他们的比值相等都是4/3,好像是宽银幕就是16/9吧?符合人眼的观察。<br>》》究竟应该怎样得到屏幕的物理尺寸?<br>学习。<br><br>
 
这涉及到显示器的分辨率。<br><br>设备分辨率(Device Resolution),又称输出分辨率,指的是各类输出设备每英寸上可产生的点数,<br>如显示器、喷墨打印机、激光打印机、热式打印机、绘图仪分辨率。这种分辨率通过DPI(Dot Per Inch)<br>这个单位来衡量。一般来讲,PC显示器的设备分辨率在60~120DPI之间,而打印机的设备分辨率则在180~720DPI之间,<br>数值越高,效果越好。<br><br>所以你得到系统的分辨率和PC的分辨率,就OK。<br>
 
to :卷起千堆雪tyn:你怎么无处不在啊
 
有病啊?能得到物理宽度?<br>如果我把你的电脑的显示器由15"换为17",<br>你的哪个函数也不会知道。
 
不能得到物理宽度
 
唯一的一种可能是显示器驱动中含有物理宽度信息,否则决无可能。物理分辨率是不能从<br>软件中得出的。都需要人工介入。
 
为什么这么说呢?<br><br>那怎样能在屏幕上输出一平方英寸的正方形?有人会么
 
恐怕只有换算了。
 
八成是不能通过编程得到了,建议你弹出窗口让用户自己输入,这样肯定可以!<br>而且出了错也不关你的事:)<br>那些显示器可以进行屏幕宽度调节,这时不关系统任何事,<br>所以你不可能得到物理尺寸的拉
 
用SCREEN.Width就可以了。
 
得到物理尺寸??神经啊!
 
物理尺寸好像不可以得到,从来没有听说过。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
571
import
I
后退
顶部