• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Delphi程序开启XP的ClearType显示效果

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

微软雅黑字体在没有开启ClearType效果时显示会一塌糊涂,最近项目中因使用了雅黑字体,所以系统启动时候需要自动开启这个功能.

网上大部份资料都是针对注册表的,几乎没有什么用.

相关位置:HKEY_CURRENT_USER\Control Panel\Desktop

类似如下:

if NOT reg.ValueExists('FontSmoothing') then reg.WriteString('FontSmoothing','2');

if NOT reg.ValueExists('FontSmoothingType') then reg.WriteInteger('FontSmoothingType',2);

下面的方法是通过调用SystemParametersInfo来实现:98和2000没有ClearType的功能

使用方法:

Font smoothing is handled by the OS, but can be controlled via the SystemParametersInfo API. Please note that the smoothing type does not apply to Win2K, only XP and above.

// Example usage

const

FE_FONTSMOOTHINGSTANDARD   = $00000001;

FE_FONTSMOOTHINGCLEARTYPE = $00000002;

SPI_GETFONTSMOOTHINGTYPE   = $0000200A;

SPI_SETFONTSMOOTHINGTYPE   = $0000200B;

procedure TForm1.Button1Click(Sender: TObject);

var dwType:        DWORD;

     bIsSet:        BOOL;

begin

if SystemParametersInfo(SPI_GETFONTSMOOTHING, 0, @bIsSet, 0) then

begin

     if bIsSet then

     begin

        ShowMessage('Font smoothing is applied');

        if SystemParametersInfo(SPI_GETFONTSMOOTHINGTYPE, 0, @dwType, 0) then

        begin

           case dwType of

              FE_FONTSMOOTHINGSTANDARD   : ShowMessage('Smoothing type is standard');

              FE_FONTSMOOTHINGCLEARTYPE : ShowMessage('Smoothing type is clear type');

           end;

        end;

     end

     else

        ShowMessage('Font smoothing not is applied');

end;

// Enable clear type font smoothing

SystemParametersInfo(SPI_SETFONTSMOOTHING, 1, nil, SPIF_UPDATEINIFILE or SPIF_SENDCHANGE);

SystemParametersInfo(SPI_SETFONTSMOOTHINGTYPE, 0, Pointer(FE_FONTSMOOTHINGCLEARTYPE), SPIF_UPDATEINIFILE or SPIF_SENDCHANGE);

// Disable font smoothing

SystemParametersInfo(SPI_SETFONTSMOOTHING, 0, nil, SPIF_UPDATEINIFILE or SPIF_SENDCHANGE);

end;


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Delphi中paramstr的用法及参数意义发布时间:2022-07-18
下一篇:
Delphi开发环境中应用层网络协议的实现发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap