Jiang's C++ Space
创作,也是一种学习的过程。
::
首页
::
新随笔
::
联系
::
聚合
::
管理
::
<
2011年7月
>
日
一
二
三
四
五
六
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
公告
旧博客地址:http://blog.csdn.net/guogangj 新浪微博已经开通:http://weibo.com/guogangj
留言簿
(16)
给我留言
查看公开留言
查看私人留言
随笔分类
Android(1)
(rss)
Hello, Wiki(2)
(rss)
IT Technical Articles(4)
(rss)
Knowledge(27)
(rss)
Thinking/Other(8)
(rss)
Windows Embedded Programming(19)
(rss)
Windows Programming(15)
(rss)
随笔档案
2011年9月 (2)
2011年8月 (4)
2011年6月 (2)
2011年5月 (2)
2011年4月 (4)
2011年3月 (2)
2011年2月 (2)
2011年1月 (1)
2010年12月 (2)
2010年11月 (5)
2010年10月 (2)
2010年9月 (1)
2010年8月 (6)
2010年7月 (5)
2010年6月 (6)
2010年5月 (1)
2010年4月 (3)
2010年3月 (2)
2009年11月 (1)
2009年10月 (9)
2009年9月 (5)
2009年8月 (1)
2009年5月 (1)
2009年4月 (7)
最新随笔
1. 用VS2010发布ASP.net网站
2. 安装VS2010后VS2008无法调试Windows Mobile程序的问题
3. C#实现类似C++功能的困惑
4. 从C++到C#的一些注意事项
5. 在VMWare上装Mac(AMD CPU)最终没搞定……
6. gSOAP在Windows Mobile平台上的使用总结
7. 帮Windows Mobile实现gmtime,localtime,mktime和strftime
8. 用VC++访问文本文件
9. Windows Mobile上网设置详细图解
10. IE9无法完全关闭cleartype效果
最新评论
1. re: 图解数据结构(7)——二叉查找树及平衡二叉查找树
66666
--666
2. re: 帮Windows Mobile实现gmtime,localtime,mktime和strftime
拿走。
谢了。
--hotman_x
3. re: IE9无法完全关闭cleartype效果
现在win8也这个德行了。不知道微软在想什么。明显很多人极度反感的东西它非得坚持。很多人为了改这个甚至去修改注册表。
--讨厌DEARTYPE
4. re: 在VMWare上装Mac(AMD CPU)最终没搞定……[未登录]
用 Oracle VM VirtualBox
--Sam
5. re: C#实现类似C++功能的困惑[未登录]
使用可空类型
--Sam
6. re: 图解数据结构(10)——排序
顶一下,太厉害了。
--byrybye
7. re: IE9无法完全关闭cleartype效果
跟我一模一样!!!恨死cleartype了
--2222
8. re: IE9无法完全关闭cleartype效果[未登录]
我也极为反感,我不止是想放弃iE,如果不是兼容性的限制我立马放弃视窗系统.
--无名
9. re: 图解数据结构(8)——二叉堆
恩,同意@周冲 的说法,出堆的操作其实也就是把根节点出堆之后,最后一个节点放到跟节点然后进行下降操作。博主的入堆操作很好理解,赞一个。
--Greedydaam
10. re: 图解数据结构(8)——二叉堆
很容易理解,谢谢
--金马
屏幕分辨率
近日翻看典著《Windows程序设计》,作者提起到“分辨率”(Resolution)一词时候,指出这个词其实是有两种含义的,一种就是我们广为熟悉的纵横像素数目表示法,另一种就是DPI,DPI在打印机和扫描仪领域更常用。
先说纵横像素数目表示法,我想我们都不会陌生,640*480,这是VGA的分辨率,800*600,这是15寸CRT常用分辨率,1024*768,这是17寸CRT常用分辨率,1280*1024,这是17寸和19寸LCD额定分辨率,而目前主流的24寸16:10的LCD的额定分辨率则是1920*1200。
对于DPI,我们可能相对陌生一点,其实DPI就是像素每英寸,为什么是英寸而不是厘米?这是因为发明计算机的老美使用的长度计量单位是英制的,据我所知好像就米国和英国继续用英制了吧,别的都换成公制了,其实也不难换,1英寸等于2.54厘米。横向分辨率为96DPI的显示器,在横向的2.54厘米里,就有96个像素,可以这么说,假如你有一张100*100像素的小图片,在96DPI的显示器上(为了方便起见,假设纵横DPI都一样)应该显示为2.65*2.65厘米,在128DPI的显示器上,应该显示为1.98*1.98厘米,图片看起来在高DPI显示器上显示得更小了。那么17寸和19寸的LCD显示器都是1280*1024的,17寸LCD的DPI是否高于19寸LCD的呢?理论上应该说是的,但我们的操作系统往往不管这些,都默认是96DPI,因为就算DPI有差距,通常也差别不大,就算差别大,用户难接受,还可以改变系统的显示分辨率来达到较好的显示效果呢,而除此之外,Windows还提供了调整字体DPI的选项来让字体显示大小适应用户习惯。
情况到了便携设备上就发生了些变化,因为便携设备的纵横像素数目分辨率不能调整,而且DPI可能差距很大。我的手机是Samsung SGH-i780的,方屏,分辨率为320*320,有次同事看了我的手机,说:“字怎么这么小的?”,他用的是240*320的,我就对比了一下我们的手机,屏幕宽度基本一致,高度我的就比他的短了一截,你想啊,垂直像素总数大家都是320点,而我的短了一截,所以看起来显示的文字就比较小了。还有更夸张一些的,现在新出的手机有480*800分辨率的,称作WVGA,横向480点,但实际物理尺寸跟我的320点的屏幕差不多,那上门的字恐怕就更小了,可能小到看不清了。而事实上呢?
事实上并没有这样,因为手机软件的作者已经考虑到这种事情了,所以在绘制文字的时候,会把文字弄大一点,这样文字的物理尺寸还是差不多的,而看起来却更加“细腻”。
横向DPI和纵向DPI可以这样获取:
GetDeviceCaps(hdc, LOGPIXELSX);
GetDeviceCaps(hdc, LOGPIXELSY);
对Windows Mobile来说,应该是这样的:
屏幕分辨率
DPI
240x320
96
480x640
192
240x240
96
480x480
192
480x800
192
320x320
128
你也许要问,为什么能够保证是这样?厂家能不能偷偷把屏幕做大一些,或者小一些?我想大概这是一种规范吧。生产Windows Mobile硬件的厂商也就那么几个,应该蛮好保证的。
那从我们开发者的角度来说,如何开发适用于各种DPI的程序呢?按照Microsoft的说法,可以这样:
You can continue to work in pixels but remove assumptions about the DPI by:
•Using the SCALEX and SCALEY macros to scale 96-DPI pixel coordinates, or using the metrics returned by GetSystemMetrics.
•Expressing sizes or positions relative to other controls.
•Expressing sizes or positions relative to a font.
更具体内容参考:
http://msdn.microsoft.com/en-us/library/bb416656.aspx
posted on 2010-06-03 13:16
Jiang Guogang
阅读(1385)
评论(3)
编辑
收藏
引用
所属分类:
Windows Embedded Programming
评论
#
re: 屏幕分辨率
2010-06-03 13:45
matthew
额,这个你都研究得这么仔细,我都是不求甚解
回复
更多评论
#
re: 屏幕分辨率
2010-06-03 18:43
gejun
很好,明白了dpi和分辨率的区别,以前一直都没在意 ...
回复
更多评论
#
re: 屏幕分辨率
2011-09-12 12:03
扯淡
博主有点扯淡了。
DPI不是用来表示屏幕尺寸的,只是表示像素点的而已....
用得着扯上多少多少寸显示器么?
长篇大论看下来感觉楼主这瞎扯蛋。
回复
更多评论
刷新评论列表
只有注册用户
登录
后才能发表评论。
【推荐】100%开源!大型工业跨平台软件C++源码提供,建模,组态!
相关文章:
安装VS2010后VS2008无法调试Windows Mobile程序的问题
帮Windows Mobile实现gmtime,localtime,mktime和strftime
Windows Mobile上网设置详细图解
奇怪的Windows Mobile输入面板刷新问题
Windows Mobile的安全模型简介
浅析Windows Mobile内存机制
Windows Mobile中文拼音序
[转]谁用了我的内存--PPC RAM的缺失本质
WM_SIZE在WM_CREATE之前?
让窗口“最大化”显示
网站导航:
博客园
IT新闻
BlogJava
知识库
博问
管理
Powered by:
C++博客
Copyright © Jiang Guogang