【发布时间】:2012-02-17 01:01:28
【问题描述】:
我觉得我读过类似的问题但我找不到它,所以如果重复请关闭。
我正在尝试使用等宽字体 (Consolas) 使用 Graphics::DrawString 绘制文本。但是,当我绘制文本时,字母的间距不均匀。这是它的样子:
如您所见,字母被分成两个和三个一组。我读了this article,我认为我已经采取了足够的措施来避免它使用StringFormat::GenericTypographic,但显然不是。我也在使用TextRenderingHintClearTypeGridFit,因为所有其他人看起来都像垃圾(没有GridFit 部分就没有TextRenderingHintClearType)。
如何像所有其他使用等宽字体绘制文本的程序一样绘制文本以使其看起来正确?
【问题讨论】:
-
这是 Graphics.DrawString() 的一个已知问题。这就是为什么 TextRenderer 类在 .NET 2.0 中可用的原因,它没有这个问题。
-
@HansPassant 我没有使用 .NET
-
好吧,然后使用 DrawTextEx(),同样的事情。
-
@HansPassant 这是 GDI 的一部分,不是吗?它会做抗锯齿、cleartype 等所有功能吗?
-
操作系统默认选择什么。是的。
标签: c++ fonts gdi+ typography kerning