Delphi程序开启XP的ClearType显示效果
微软雅黑字体在没有开启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显示效果相关推荐
- 《Delphi程序开发范例宝典(第3版)》.(明日科技).[PDF]ckook
为什么80%的码农都做不了架构师?>>> 图书作者: 明日科技 图书编号: 9787115277589 图书格式: PDF 出 版 社: 人民邮电出版社 出版年份: 2012 ...
- 043_《Delphi程序开发范例宝典(第2版)》
<Delphi程序开发范例宝典(第2版)> Delphi 教程 系列书籍 (043) <Delphi程序开发范例宝典(第2版)> 网友(邦)整理 EMail: shuaihj@ ...
- 关于DELPHI程序多语言支持的问题
写DELPHI程序,是如何实现繁体化的?是如何开发英文版的?是通过外挂语言包吗? 我完整地说一下我的问题: 我写一个DELPHI程序,开发环境是是简体中文版本win xp系统+ Delphi 7的.现 ...
- 在Delphi程序中操作注册表
32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息. 一.创建和释放TRegistry对象 1.创建TRegistry对象.为了操作注册表,要创建一个TRegistry对象: ...
- 让delphi程序不受WINDOWS日期格式的影响
2019独角兽企业重金招聘Python工程师标准>>> 让delphi程序不受WINDOWS日期格式的影响如果WINDOWS系统的短日期格式为"yyyy/m/d" ...
- 【iOS系列】-程序开启后台运行
[iOS系列]-程序开启后台运行 iOS程序是伪后台的运行,可是有时候我们需要让其在后台也要进行一些操作,我们可以让其伪装成音乐的APP,这样就可以让程序后台进行相关操作了,具体做法如下: 1:在Ap ...
- 在Delphi程序中应用IE浏览器控件
---- 大概大家还记得Delphi的范例程序中的那个浏览器的例子吧.在那个例子中,利用控件THttp的属性和方法制作了一个浏览器.该例子用于理解THttp控件的使用方法,确实不错.但很少有人会用它作 ...
- Delphi程序自删除
总结了一下Delphi程序自删除的几种方法 program Project1; //方法一 uses Windows; function WinExec(lpCmdline: PAnsiChar ...
- delphi query 存储为dbf_在Delphi程序中维护DBF数据库
下载本文示例代码 p> 由于Delphi开发的易用性和快速 性,很多原来使用Foxpro和VisualFoxpro编程的程序员转向了Delphi.但由于工作上或其它的原因,原来的应用系统尤其是应 ...
- 用VS2012或VS2013在win7下编写的程序在XP下运行就出现“不是有效的win32应用程序
问题描述: 用VC2013编译了一个程序,在Windows 8.Windows 7(64位.32位)下都能正常运行.但在Win XP,Win2003下运行时,却报错不能运行,具体错误信息为" ...
最新文章
- RequestBodyAdvice和ResponseBodyAdvice
- 2.Riesz定理及其应用
- Spring的7种事务传播行为类型
- 在线安装非GPU版的tensorflow流程
- 云炬创业政策学习笔记20210115
- adf盖怎么打开_罐头好吃盖难开,学会这几招,再不靠蛮力了,女生也轻松拧开...
- 分析师视角:2018年的数据中心3大预测
- hdu 5139 数据的离线处理
- 怎么拆除境地柜_内衣不合身拒绝接亲,精装房装修不满意怎么办?
- 为了项目上线而加班,真有必要吗?
- EDU教育网邮箱申请注册享受Apple、微软、Github等产品教育优惠附带各优惠申请教程
- 树莓派linux下载机,树莓派打造北邮人种子下载机——下载、做种一条龙全站式教程...
- Bitmap、BitSet、RoaringBitmap持久化存储
- 单例模式singleton
- 帝国php改密码后登录不进去,帝国cms后台不能登录的解决方法
- mysql上机心得体会_数据库原理上机心得体会
- 关于verilog中综合的过程,可综合与不可综合的理解
- String Similarity
- 一起学CC3200系列教程之跑马灯---库
- 山洪灾害监测预警系统