WinAPI: GetCharABCWidths - 获取 TrueType 字符的宽度信息

//声明:
GetCharABCWidths(
  DC: HDC;                   {设备环境句柄}
  FirstChar, LastChar: UINT; {范围内的第一个和最后一个字符值}
  const ABCStructs           {接受每个字符信息的 TABC 结构数组}
): BOOL;

//TABC 类型是 _ABC 结构的重定义:
_ABC = packed record
  abcA: Integer; {左间距}
  abcB: UINT;    {字宽}
  abcC: Integer; {右间距}
end;

{GetCharABCWidths 只用于 TrueType 字体}

 
 
 
 
 

 

 
  

//获取当前字体所有大写字母三个宽度信息(用Memo显示)
procedure TForm1.FormCreate(Sender: TObject);
var
  arr: array[0..25] of TABC;
  i: Integer;
begin
  GetCharABCWidths(Canvas.Handle, Ord('A'), Ord('Z'), arr);

  Memo1.Clear;
  Memo1.Lines.Add('字符'#9'A'#9'B'#9'C');
  
  for i := 0 to 25 do
  begin
    Memo1.Lines.Add(
      Char(Ord('A')+i) + #9 + 
      IntToStr(arr[i].abcA) + #9 +
      IntToStr(arr[i].abcB) + #9 +
      IntToStr(arr[i].abcC) + #9
    );
  end;
end;

 
 
 
 
 

 

 
  

//效果图:
WinAPI: GetCharABCWidths - 获取 TrueType 字符的宽度信息

你可能感兴趣的:(WinAPI: GetCharABCWidths - 获取 TrueType 字符的宽度信息)