微软雅黑字体在没有开启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;

转载于:https://www.cnblogs.com/MaxWoods/archive/2013/06/07/3123745.html

Delphi程序开启XP的ClearType显示效果相关推荐

  1. 《Delphi程序开发范例宝典(第3版)》.(明日科技).[PDF]ckook

    为什么80%的码农都做不了架构师?>>>    图书作者: 明日科技 图书编号: 9787115277589 图书格式: PDF 出 版 社: 人民邮电出版社 出版年份: 2012 ...

  2. 043_《Delphi程序开发范例宝典(第2版)》

    <Delphi程序开发范例宝典(第2版)> Delphi 教程 系列书籍 (043) <Delphi程序开发范例宝典(第2版)> 网友(邦)整理 EMail: shuaihj@ ...

  3. 关于DELPHI程序多语言支持的问题

    写DELPHI程序,是如何实现繁体化的?是如何开发英文版的?是通过外挂语言包吗? 我完整地说一下我的问题: 我写一个DELPHI程序,开发环境是是简体中文版本win xp系统+ Delphi 7的.现 ...

  4. 在Delphi程序中操作注册表

    32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息. 一.创建和释放TRegistry对象 1.创建TRegistry对象.为了操作注册表,要创建一个TRegistry对象: ...

  5. 让delphi程序不受WINDOWS日期格式的影响

    2019独角兽企业重金招聘Python工程师标准>>> 让delphi程序不受WINDOWS日期格式的影响如果WINDOWS系统的短日期格式为"yyyy/m/d" ...

  6. 【iOS系列】-程序开启后台运行

    [iOS系列]-程序开启后台运行 iOS程序是伪后台的运行,可是有时候我们需要让其在后台也要进行一些操作,我们可以让其伪装成音乐的APP,这样就可以让程序后台进行相关操作了,具体做法如下: 1:在Ap ...

  7. 在Delphi程序中应用IE浏览器控件

    ---- 大概大家还记得Delphi的范例程序中的那个浏览器的例子吧.在那个例子中,利用控件THttp的属性和方法制作了一个浏览器.该例子用于理解THttp控件的使用方法,确实不错.但很少有人会用它作 ...

  8. Delphi程序自删除

    总结了一下Delphi程序自删除的几种方法 program Project1;  //方法一 uses   Windows; function WinExec(lpCmdline: PAnsiChar ...

  9. delphi query 存储为dbf_在Delphi程序中维护DBF数据库

    下载本文示例代码 p> 由于Delphi开发的易用性和快速 性,很多原来使用Foxpro和VisualFoxpro编程的程序员转向了Delphi.但由于工作上或其它的原因,原来的应用系统尤其是应 ...

  10. 用VS2012或VS2013在win7下编写的程序在XP下运行就出现“不是有效的win32应用程序

    问题描述: 用VC2013编译了一个程序,在Windows 8.Windows 7(64位.32位)下都能正常运行.但在Win XP,Win2003下运行时,却报错不能运行,具体错误信息为" ...

最新文章

  1. RequestBodyAdvice和ResponseBodyAdvice
  2. 2.Riesz定理及其应用
  3. Spring的7种事务传播行为类型
  4. 在线安装非GPU版的tensorflow流程
  5. 云炬创业政策学习笔记20210115
  6. adf盖怎么打开_罐头好吃盖难开,学会这几招,再不靠蛮力了,女生也轻松拧开...
  7. 分析师视角:2018年的数据中心3大预测
  8. hdu 5139 数据的离线处理
  9. 怎么拆除境地柜_内衣不合身拒绝接亲,精装房装修不满意怎么办?
  10. 为了项目上线而加班,真有必要吗?
  11. EDU教育网邮箱申请注册享受Apple、微软、Github等产品教育优惠附带各优惠申请教程
  12. 树莓派linux下载机,树莓派打造北邮人种子下载机——下载、做种一条龙全站式教程...
  13. Bitmap、BitSet、RoaringBitmap持久化存储
  14. 单例模式singleton
  15. 帝国php改密码后登录不进去,帝国cms后台不能登录的解决方法
  16. mysql上机心得体会_数据库原理上机心得体会
  17. 关于verilog中综合的过程,可综合与不可综合的理解
  18. String Similarity
  19. 一起学CC3200系列教程之跑马灯---库
  20. 山洪灾害监测预警系统

热门文章

  1. 动态路由之RIP综合实验
  2. Linux之SELinux自主访问控制系统
  3. HDOJ--2112--HDU Today
  4. 页面加载速度缓慢时,如何优化?
  5. 兆芯笔试题(2015)找反复数最多的字母的数量以及位置
  6. layoutSubview 总结
  7. VGA接口(四)字符
  8. exchange 日常管理之八:合并用户邮箱
  9. 转: DHTMLX Tree中文开发指导
  10. 《SharePoint Portal Server 2003 深入指南》开放了两个章节在线阅读