本帖最后由 Chengs_bbs 于 2011-04-07 15:16:49 编辑

解决方案 »

  1.   

    不要用Drawtext,而要用TextOutprocedure TForm1.Button1Click(Sender: TObject);
    var
      text: string;
      textsize: SIZE;
      spacing: Integer;
      rect: TRect;
    begin
      text:= '123';
      {设置文本间距:(矩形宽度-文本宽度)/文本个数}
      SetRect(rect, 50, 50, 300, 100);
      Rectangle(Form1.Canvas.Handle, rect.left, rect.Top, rect.Right, rect.bottom);
      GetTextExtentPoint(Form1.Canvas.Handle, PChar(text), length(text), TextSize);
      Spacing:= (Rect.Right - Rect.Left - TextSize.cx) div (length(text)-1);
      SetTextCharacterExtra(form1.Canvas.Handle, Spacing);
      //DrawText(Form1.Canvas.Handle, PChar(text), -1, rect, DT_VCENTER);
      TextOut(form1.Canvas.Handle,rect.Left,rect.Top,PChar(text),Length(text));
    end;