首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Delphi中改变RichEdit的字体平滑(抗混叠)质量?

如何在Delphi中改变RichEdit的字体平滑(抗混叠)质量?
EN

Stack Overflow用户
提问于 2014-03-18 16:54:39
回答 1查看 1.5K关注 0票数 1

我有一个Delphi7应用程序,在该应用程序中,我将文本绘制到TBitmap。我需要能够控制文本的抗混叠质量。为此,我使用了以下步骤:

代码语言:javascript
运行
复制
procedure SetFontQuality(Font: TFont; Quality: Byte);
var
  lf: TLogFont;
begin
  GetObject(Font.Handle, SizeOf(TLogFont), @lf);
  lf.lfQuality := Quality;
  Font.Handle := CreateFontIndirect(lf);
end;

我叫它是为了我的TBitmapSetFontQuality(MyBitmap.Canvas.Font, ANTIALIASED_QUALITY)。这里的目标是设置旧的反混叠,而不是新的ClearType。如果我使用DrawTextTBitmap上绘制文本,这是很好的。但是,我需要在上面画一个TRichEdit的文本,所以我为此使用了EM_FORMATRANGE。但是文本是用我的Windows反混叠所绘制的(所以如果我在ClearType中启用了ClearType,即使我用ANTIALIASED_QUALITY设置了旧的反混叠)。

我想我需要更改TRichEdit的字体质量,所以我将这个过程应用于它:SetFontQuality(MyRichEdit.Font, ANTIALIASED_QUALITY),但这并没有改变任何事情。

我做了一些测试--我尝试将这个过程应用于各种控件的Font属性-- TButtonTMemoTEditTLabel。这对所有的人来说都是一种魅力。但是当应用于TRichEditFont属性时,反混叠不会改变。

因此,我的问题是:如何改变TRichEdit控件的抗混叠质量?

EN

回答 1

Stack Overflow用户

发布于 2014-03-18 17:11:52

Delphi控件是本机TRichEdit富编辑控件的松散包装器。Windows富编辑控件基于RTF标准。富编辑控件的内容可以针对文本的不同部分具有不同的字体属性。然而,RTF标准并不包括反混叠.因此,不能将反混叠设置应用于文本的各个部分。因此,该控件使用系统设置来确定反混叠.

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22485970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档