老大,我试了。和用其它的API函数效果相同。我得到的数在不同的字体大小之下总是同一个数值啊~~~~~~~~~~~~~~~~~~

解决方案 »

  1.   

    同意 netlib(河外孤星)
    我以前用过,没有你说的问题,
    说具体些吧。
      

  2.   

    procedure TFormRadiusClient.Button1Click(Sender: TObject);
    begin
      Canvas.Font.Size := 16;
      Canvas.Font.Name := '宋体';
      Caption := IntToStr(Canvas.TextWidth('你要的是它?'));
    end;
      

  3.   

    procedure TFormRadiusClient.Button1Click(Sender: TObject);
    begin
      Canvas.Font.Size := 16;
      Canvas.Font.Name := '宋体';
      Caption := IntToStr(Canvas.TextWidth('你要的是它?'));
    end;
      

  4.   

    我也在怀疑自己的程序是否有问题。具体说就是我在从底层开始做一个文本编辑的东西。现在显示方面已经基本上出来了。但是进入到编辑就要插入Caret,而我必须挨个判断字符是否为中文。如果是中文则多宽,如果是E文那么它到底是等宽还是不等宽的字,占用多少象素。这样我才能算出来Caret必须放在哪个位置。现在得不到子的宽度。
    我会再试一试的。多谢各位。请继续关注本贴,小弟有不懂得地方还要请教。
    公司放假看中国队的比赛,我要回家看球了。呵呵……