繁体   English   中英

列出Delphi 2009 Win32中可用的GDI +字体

[英]List available GDI+ fonts in Delphi 2009 win32

在使用Win32的Delphi 2009中,如何获得系统上可用的GDI +字体列表?

补充问题:是否有一个字体对话框可以向用户显示仅此字体? 如果可以在Lazerous中使用相同的方法,则可获得加分。

您应该枚举系统中的所有字体:

procedure TPDFFontMapper.EnumFonts;
var
  LF: TLogFont;
begin
  System.FillChar(LF, sizeof(LF), 0);
  LF.lfCharSet := DEFAULT_CHARSET;
  FDC := CreateCompatibleDC(0);
  try
    Windows.EnumFontFamiliesEx(FDC, LF, @EnumFFProc, Integer(Self), 0);
  finally
    Windows.DeleteDC(FDC);
  end;
end;

您应该有一个为每种字体调用的函数,并测试它是否是矢量字体(TrueType和OpenType字体均被视为TrueType字体):

function EnumFFProc(const LogFont: TEnumLogFontEx; const TextMetric: TNewTextMetric; FontType: DWORD; LParam: DWORD): Integer; stdcall;
begin
  if FontType and TRUETYPE_FONTTYPE = TRUETYPE_FONTTYPE then
    // do sometghing useful with the logfont...
  Result := 1;
end;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM