如何获得String的像素宽度和高度?

时间:2011-04-30 12:15:15

标签: delphi text canvas delphi-7

如何在Delphi 7中使用GetTextExtentPoint32W来获取宽字符串输出前的像素宽度和高度?

1 个答案:

答案 0 :(得分:9)

你可以做到

procedure TForm1.FormPaint(Sender: TObject);
var
  extent: TSize;
  S: WideString;
begin
  S := 'This is the integral sign: '#$222b;
  if not GetTextExtentPoint32W(Canvas.Handle, PWideChar(S), length(S), extent) then
    RaiseLastOSError;
  TextOutW(Canvas.Handle, (Width - extent.cx) div 2, (Height - extent.cy) div 2,
    PWideChar(S), length(S));
end;

GetTextExtentPoint32W将宽度和高度分别放在extent.cxextent.cy中。

最后一行将使用TextOutW在客户区域上水平和垂直绘制字符串。