设备大小

假定你想要绘制边长为1英寸的正方形,为了完成这一操作,程序员/Windows操作系统 需要知道在视频显示器上多少像素相当于1英寸。GetDeviceCaps函数可以帮助你获取关于输出设备(显示器、打印机)物理尺寸的信息。

 

视频显示器和打印机是两种完全不同的设备。对于“Resolution”(分辨率)一词的用法是二者最大的不同!对于打印机而言,分辨率表示每英寸的墨点数。例如,大多数激光打印机拥有300×600 dots/inch的分辨率。而对于显示器而言,分辨率通常表示横向或者纵向上的总像素数量,例如,1024×768像素。人们不可能告诉你打印机的一页纸上横向或者纵向的像素数量;人们也不可能告诉你在他们的显示器上,每英寸能包含多少像素!

归纳起来:

打印机:分辨率单位为“dots/inch”;

显示器:分辨率单位为“横向/纵向总像素数”

在下文的翻译中,“分辨率”一词将严格表示在 某一度量单位内的像素数,度量单位一般为英寸。(也就是 像素/英寸)“Pixel Size”或者“Pixel Dimension”(以像素为单位的尺寸,以像素为单位的大小,注意可不是一个像素的尺寸哦)来表示显示器横向、纵向的总像素数量。“metrical size”或者“metrical dimension”表示以英寸、毫米为单位的显示区域(如显示器的屏幕,打印机的纸张的可打印区域)的尺寸。使用“像素数量”/“度量尺寸”就得到了分辨率,如:1024像素/5英寸。

当今使用windows操作系统的显示器,横向长度要比纵向多出33%的,也就是横向、纵向比为1.33:1,或者更通俗的讲是4:3,该比例可以追溯到爱迪生发明电影,直到1953年出现宽屏投影出现为止,该比例一直是显示移动图像的标注比例。电视机也是4:3的横向、纵向比。

然而windows应用程序不该假定显示器总是拥有4:3的横纵比,做文字处理的人们更倾向于选择一款与真实纸张形状相似的显示器。除了4:3比例外,另外一种可选的比例是3:4。

如果一款设备的横向分辨率等于纵向分辨率,那么我们就称该设备为“正方像素”,在现如今,使用windows操作系统的大多数显示器均具备正方像素,但是并不是全都如此。所以你的应用程序不能总是假定设备具备正方像素。当windows刚刚面世的时候(那时候就不是正方像素),标准的视频适配卡(显卡)是ibm的Color Graphics Adapter(CGA),该显卡具备显示640×200像素的能力,EGA显卡:640×350像素;还有诸如720×348像素;所有的显卡均使用4:3纵横比的显示器,但是横向、纵向的像素数量之比并不是4:3。如,640×350,横纵比为:1.829。物理屏幕为4:3,但是像素比却不为4:3,那么就不是正方像素了。

对于使用windows操作系统的用户而言,确定显示器的像素尺寸很容易,如图:

你可能会会发现如下像素大小(Pixel dimension):

640×800;

800×600;

1024×768;

1280×1024;(这个不是4:3,是个例外)

1600×1200;

上述均是4:3,如何配以4:3的显示器,那么就构成了正方像素。

通过GetSystemMetrics函数(加上SM_CXSCREEN,SM_CYSCREEN参数)可以获取设备以像素为单位的大小(Pixel Dimension)。GetDeviceCaps函数(加上HORZRES,VERTRES)也同样可以完成上述功能。在上述函数中,分辨率代表pixel size(像素大小,像素数量)而不是pixels per metrical unit(像素每度量单位)。

上面论述的是设备的大小(device size),下面的内容非常容易引起混淆。

前两个设备的能力,HORZSIZE和VERTSIZE,在开发文档中被记录为:“物理屏幕的宽度,以毫米为单位;物理屏幕的高度,以毫米为单位”这种说法表面看起来是明确的,直截了当的,合情合理的,但是一旦你想想“这如何实现呢?”去发现上述说法是不现实的,不科学的。例如,给定显卡和显示器的类型,windows如何能知道显示器的物理尺寸呢?如果你拥有一台笔记本电脑(该电脑的显示驱动能够准确的知道屏幕的物理尺寸)连接了一台显示器到上面,甚至是连接了一台投影仪呢?windows如何知道屏幕大小??

在16位的windows(windows nt中也是一样)中,windows为屏幕的HORZSIZE、VERTSIZE使用标准的显示大小,从win95开始,HORZSIZE和VERTSIZE从HORZRES、VERTRES、LOGPIXELSX、LOGPIXELSY的值推导得出。下面详细论述。

当你从控制面板中选定了显示的pixel size,你也可以选择系统字体的大小。为何会有此选项呢?用于640×480显示的字体在1024×768或者更高的情况下会变得很小,不便于阅读。你想要更大的系统字体,在windows中有小字体、大字体。

在传统的印刷术中,一种字体的字符大小(size)用镑(point size)表示。一磅近似等于1/72英寸。在电脑印刷术中,字符大小近似1/72英寸。10磅的字体大概是10/72英寸。10磅的字体一般被认为是易于阅读的,小于10磅被认为不易于阅读。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值