Как получить ширину пикселя и высоту строки? - PullRequest
1 голос
/ 30 апреля 2011

Как использовать GetTextExtentPoint32W в Delphi 7, чтобы получить ширину и высоту пикселя широкой строки до ее вывода?

1 Ответ

9 голосов
/ 30 апреля 2011

Вы можете сделать

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.cx и extent.cy соответственно.

В последней строке будет использоваться TextOutW нарисовать строку по центру по горизонтали и вертикали в клиентской области.

...