gpt4 book ai didi

c# - 使用 SystemParametersInfo SPI_GETICONTITLELOGFONT

转载 作者:太空宇宙 更新时间:2023-11-03 11:45:02 29 4
gpt4 key购买 nike

我目前正在使用函数 SystemParametersInfo 来检索 SPI_GETICONTITLELOGFONT。根据 MSDN 文档,这是 http://msdn.microsoft.com/en-us/library/ms724947(VS.85).aspx

"Retrieves the logical font information for the current icon-title font"

但是即使我将字体更改为“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;

最佳答案

可能是您在个性化菜单中更改了错误的字体?如果我将图标字体从 Segoe UI 更改为 Verdana,则以下代码可以正常工作:

program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils, Windows;

var
LogFont: TLogFont;

begin
try
if SystemParametersInfo(SPI_GETICONTITLELOGFONT, SizeOf(LogFont),
@LogFont, 0) then
Writeln('Current Font is ', LogFont.lfFaceName)
else
Writeln('Error #', GetLastError);

Readln;
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.

关于c# - 使用 SystemParametersInfo SPI_GETICONTITLELOGFONT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3659081/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com