如何获取系统的默认的字体名称(100分)

  • 主题发起人 主题发起人 ARRAYlyf
  • 开始时间 开始时间
A

ARRAYlyf

Unregistered / Unconfirmed
GUEST, unregistred user!
如何获取系统的默认的字体名称
 
[HKEY_LOCAL_MACHINE/SYSTEM/GDI/SYSFNT] ; System font
"Nm"="Tahoma" ; Font name
"Ht"=dword:e ; Font height
"It"=dword:0 ; Font italic (0 or 1)
"Wt"=dword:190 ; Font weight (boldness)
"CS"=dword:0 ; Font characer set
 
帮你顶,楼上的已经是正确的了
 
GDI/SYSFNT 我在XP注册表中没有找到,为什么?
 
下面这句不行么?呵呵
放一个combobox到界面上,然后写
ComboBox1.Items.Assign(Screen.Fonts);
 
你这只是显示出系统可用字体名称
 
不知道你指的默认字体是什么
TScreen中有三个字体,MenuFont, HintFont, IconFont,是你要的吗
看看TScreen的GetMetricSettings吧

procedure TScreen.GetMetricSettings;
var
LogFont: TLogFont;
NonClientMetrics: TNonClientMetrics;
SaveShowHint: Boolean;
begin
SaveShowHint := False;
if Assigned(Application) then SaveShowHint := Application.ShowHint;
try
if Assigned(Application) then Application.ShowHint := False;
if SystemParametersInfo(SPI_GETICONTITLELOGFONT, SizeOf(LogFont), @LogFont, 0) then
FIconFont.Handle := CreateFontIndirect(LogFont)
else
FIconFont.Handle := GetStockObject(SYSTEM_FONT);
NonClientMetrics.cbSize := SizeOf(NonClientMetrics);
if SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, @NonClientMetrics, 0) then
begin
FHintFont.Handle := CreateFontIndirect(NonClientMetrics.lfStatusFont);
FMenuFont.Handle := CreateFontIndirect(NonClientMetrics.lfMenuFont);
end else
begin
FHintFont.Size := 8;
FMenuFont.Handle := GetStockObject(SYSTEM_FONT);
end;
FHintFont.Color := clInfoText;
FMenuFont.Color := clMenuText;
finally
if Assigned(Application) then Application.ShowHint := SaveShowHint;
end;
end;
 
多人接受答案了。
 
各位大虾有没有数据数型大全啊?
求救了!!





救教了........
 
后退
顶部