2

我有一个用 VC6 构建的 MFC 应用程序。当 ClearType 被启用 (Windows XP) 时,某些文本可以平滑地呈现,即使用 ClearType,而其他文本则不是。

对话文本似乎永远不会用 ClearType 呈现。然而,一些列表控件完全启用了它,其他的只在它们的标题中。

这可能是什么原因?我应该在哪里查找为什么它只在某些地方有效而在其他地方无效?

更新
根据要求,这是放大的屏幕截图。混淆但重要部分应该是可见的。

  • 只有标题是流畅的,List 1内容不是。
  • List 2这两者中,标题和列表项都是平滑的。
  • Dialog底部的也没有使用 ClearType 。

cleartype 有时工作有时不工作的屏幕截图

4

2 回答 2

2

位图字体永远不会使用 ClearType。通常你不会使用位图字体,但我相信默认选择到 DC 中的是系统字体,即位图。

于 2010-03-11T16:39:23.490 回答
0

ClearType 是字体的质量属性。您应该为您的 CFont 获取 LOGFONT 并设置 lfQuality 属性。这是一个例子。

CFont *pFont = CFont::FromHandle((HFONT)GetStockObject(DEFAULT_GUI_FONT));
LOGFONT logFont;
pFont->GetLogFont(&logFont);
logFont.lfQuality = CLEARTYPE_NATURAL_QUALITY;

CFont font2;
font2.CreateFontIndirect(&logFont);

注意:您可以使用CLEARTYPE_QUALITYCLEARTYPE_NATURAL_QUALITY,测试两者以查看哪个看起来最好。

于 2010-03-11T17:15:39.750 回答