使用 CreateFont() 创建时,Tahoma (MS Shell Dlg 2) 字体在 Win7 中看起来被压扁

Posted

技术标签:

【中文标题】使用 CreateFont() 创建时,Tahoma (MS Shell Dlg 2) 字体在 Win7 中看起来被压扁【英文标题】:Tahoma (MS Shell Dlg 2) font looks squashed in Win7 when created with CreateFont() 【发布时间】:2012-06-12 06:20:42 【问题描述】:

我正在尝试在 Listview 控件中使用高度为 -15 和/或高度为 -12 的 Tahoma 字体(MS Shell Dlg 2)。然而,对于这两种尺寸,我的文本看起来水平挤压在一起,即 l 和 i 靠得很近,你几乎无法区分它们。默认高度为 -13 或 -16 看起来不错。

我想知道我对 CreateFont 的调用是否有问题,如下所示,或者这是否是字体的限制?

CreateFont(-15, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, DEFAULT_CHARSET,    
    OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, 
    DEFAULT_PITCH | FF_DONTCARE, L"MS Shell Dlg 2");

我尝试使用质量和输出精度参数,但没有运气。

【问题讨论】:

Tahoma 字体是可缩放字体还是位图字体? MS Shell Dlg 2 是一种逻辑字体,映射到appropriate physical font。你确定物理字体确实是 Tahoma 吗?您可以尝试CreateFont(..., "Tahoma") 进行比较。 Tahoma 是可扩展的。是的,肯定是用的Tahoma,刚改了名字,结果还是一样。 可能有什么东西覆盖了我的 Windows Tahoma 字体? ;) 【参考方案1】:

这是由另一个论坛上的某人回答的。显然某个版本的 Tahoma 字体存在错误。

【讨论】:

请在您的回答中提供参考并引用相关信息。

以上是关于使用 CreateFont() 创建时,Tahoma (MS Shell Dlg 2) 字体在 Win7 中看起来被压扁的主要内容,如果未能解决你的问题,请参考以下文章

CreateFont 的 charset 参数究竟设置了啥?

替代 Font.createFont()?

Windows CreateFont:创立本人的字体

CreateFont函数为什么改变不了字体?该怎么解决

iOS自定义字体[重复]

com.itextpdf.text.pdf.BaseFont.createFont