【发布时间】:2011-04-09 05:08:41
【问题描述】:
我目前正在使用函数 SystemParametersInfo 来检索 SPI_GETICONTITLELOGFONT。根据 MSDN 文档,这是 http://msdn.microsoft.com/en-us/library/ms724947(VS.85).aspx
"获取当前图标-标题字体的逻辑字体信息"
但即使我将字体更改为“VivlaidD”,它也总是会检索“Segoe UI”。我在 Windows 7 机器上。是不是这个函数只检索系统默认值?或者“SystemParametersInfo”有什么问题吗?
这是我检索字体的代码:
procedure GetUserFontPreference(out FaceName: string; out PixelHeight: Integer);
var
lf: LOGFONT;
begin
ZeroMemory(@lf, SizeOf(lf));
if SystemParametersInfo(SPI_GETICONTITLELOGFONT, SizeOf(lf), @lf, 0) then
begin
FaceName := PChar(Addr(lf.lfFaceName[0]));
PixelHeight := lf.lfHeight;
end
else
begin
{
If we can't get it, then assume the same non-user preferences that
everyone else does.
}
FaceName := 'MS Shell Dlg 2';
PixelHeight := 8;
end;
end;
【问题讨论】:
-
字体名称拼写正确吗?应该是VivaldiD吗?
-
注意可能会被小磅值替代的暗示不佳的字体。
-
双重检查,绝对是 VivladiD
-
是时候包含您的偏好截图,显示项目:图标,字体:VivladiD