XP下使用TextOut字体显示不清晰的问题

时间:2022-02-13 20:08:17

    本人现在正在做一个编辑软件,使用TextOut输出问题,之前先选入字体(LOGFONT),以便自己决定字高等参数,原先一直在2000下测试,没有问题,最近给别人在XP下测试,发现字比较小的时候就很不清晰,主要表现在颜色很淡,但是比较大了以后就没问题了,比如1cm以上,百思不得其解,可怜的是现在外面大多数机器都是XP,我试着把选入字体的时候lfFaceName位设置为"System",就不会出现这样的问题,但是就没有了自己设置字体的权利,更严重的是无法更改大小,请各位高人指点!

9 个解决方案

#1


mark

#2


看一下LOGFONT里的值
1.  LONG lfWeight; 值是不是给大或给小了.
2.  lfCharSet, 是不是给错了,比方说GB2312_CHARSET给成ANSI_CHARSET了

#3


都没有啊,大哥,不是简单的设错值,我在2000下一点问题也没有,帮帮忙啊,郁闷死了.

#4


根XP系统有关系

#5


应该是由于系统设置不同造成的
你把显示属性(桌面上右键选属性)->外观->效果 中的
“使用下列方式使屏幕字体的边缘平滑”
设置成“清晰”,默认设置为“标准”试试

这个设置可以通过 SystemParametersInfo 函数来完成

#6


这位大哥好像比较有经验啊,可是我现在本来就在"标准"上面,而且为什么用他的"System'字体就没问题.

#7


那位高人来救场啊

#8


试了半天,终于发现原因了,还是受到了空气同志的启发,无论 清晰 还是 标准 都没用,但干脆是把“使用下列方式使屏幕字体的边缘平滑”前面的复选框去掉就可以了,估计了windows认为字体太细需要和背景平滑过渡.

#9


对头! 这是ClearType技术在作怪

ClearType是微软利用LCD硬件组成原理实现的一总增强字体清晰度的技术,主要用在LCD上,当然系统必须支持到GDI+核心,也就是XP以上

CLearType 在全屏抗锯齿方面做的很优秀,她的原理就是在原来锯齿位置加入彩色的过渡方块,所以字体轮廓看起来是真彩色的

而且转折位置尽量减小RGB在垂直方向的色差,所以看起来很平滑

^_^ WinXP的CRT显示平台 虽然显示属性也可以启用"清晰"支持,但是这不是真正的ClearType,而且效果明显不如LCD

想必lz也就是这个问题~~

#1


mark

#2


看一下LOGFONT里的值
1.  LONG lfWeight; 值是不是给大或给小了.
2.  lfCharSet, 是不是给错了,比方说GB2312_CHARSET给成ANSI_CHARSET了

#3


都没有啊,大哥,不是简单的设错值,我在2000下一点问题也没有,帮帮忙啊,郁闷死了.

#4


根XP系统有关系

#5


应该是由于系统设置不同造成的
你把显示属性(桌面上右键选属性)->外观->效果 中的
“使用下列方式使屏幕字体的边缘平滑”
设置成“清晰”,默认设置为“标准”试试

这个设置可以通过 SystemParametersInfo 函数来完成

#6


这位大哥好像比较有经验啊,可是我现在本来就在"标准"上面,而且为什么用他的"System'字体就没问题.

#7


那位高人来救场啊

#8


试了半天,终于发现原因了,还是受到了空气同志的启发,无论 清晰 还是 标准 都没用,但干脆是把“使用下列方式使屏幕字体的边缘平滑”前面的复选框去掉就可以了,估计了windows认为字体太细需要和背景平滑过渡.

#9


对头! 这是ClearType技术在作怪

ClearType是微软利用LCD硬件组成原理实现的一总增强字体清晰度的技术,主要用在LCD上,当然系统必须支持到GDI+核心,也就是XP以上

CLearType 在全屏抗锯齿方面做的很优秀,她的原理就是在原来锯齿位置加入彩色的过渡方块,所以字体轮廓看起来是真彩色的

而且转折位置尽量减小RGB在垂直方向的色差,所以看起来很平滑

^_^ WinXP的CRT显示平台 虽然显示属性也可以启用"清晰"支持,但是这不是真正的ClearType,而且效果明显不如LCD

想必lz也就是这个问题~~