怎么设置系统字体是否使用平滑? (120分)

  • 主题发起人 主题发起人 cw2
  • 开始时间 开始时间
C

cw2

Unregistered / Unconfirmed
GUEST, unregistred user!
在NT的"显示属性"-"PLUS!"或者98的"显示属性"-"效果"
里面有一个"圆滑屏幕字体"的选项,怎么在程序里面控制
这个选项选中或者不选中啊?
我看了一下注册表,在USER-.DEFAULT-CONTROL PANEL-Desktop
中,有一个"FontSmoothing",设置显示属性的时候,这个值会变,
但是我改变这个值,显示属性里面的却不变,奇怪.....
在CURRENT_USER里面也有这个项,一样的结果.
怎么才能在程序里面随时控制这个项呢?????
 
restart
or
sendmessage(...)
 
{Use the TRegistry}
Uses Registry;
--------------------
var
; mreg:Tregistry;
begin
try
; mreg := Tregistry.Create;
; mreg.RootKey:=HKEY_CURRENT_USER;
; mreg.OpenKey('Control Panel//Desktop',true);
; mreg.WriteInteger('FontSmoothing',2);
; mreg.CloseKey;
finally
; mreg.free;
end;
; SetSystemParamInfo(...);
end;
; May Be there is Something wrong in the Source Code,Try your best!
 
//取平滑设置
function GetFontSmoothing: Boolean;
var
; IsSmoothing: LongBool;
begin
; SystemParametersInfo(SPI_GETFONTSMOOTHING, 0, @IsSmoothing, 0);
; Result := IsSmoothing;
end;

//置平滑设置
procedure SetFontSmoothing(Smoothing: Boolean);
var
; IsSmoothing: LongBool;
begin
; IsSmoothing := Smoothing;
; SystemParametersInfo(SPI_SETFONTSMOOTHING, Cardinal(IsSmoothing), nil, SPIF_SENDCHANGE);
end;

注:在设置后,应刷新显示重绘文本。
另:我写有一个AAFont平滑特效字体控件包,使用自己的算法显示平滑字体,支持所有大小、格式的
TrueType字体,不受系统的约束。如感兴趣可到http://yygw.126.com下载。
 
后退
顶部