如题目,谢谢!

解决方案 »

  1.   

    Label.Caption := 'a'#13'b'#13;如果要自己画:
    DrawText(... , DT_WORDBREAK );
      

  2.   

    非常感谢风舞轻扬的回答,但是和我的意图还有差距,也是因为我没有把问题说清楚。
    Word中竖排文本框中的英文单词和汉字的显示形式不同,它是整个单词合在一起纵向排列,因此每个字母的方向都做了一个顺时针90度旋转。而且在矩形框内,如果文本的长度超过了矩形的高度,还要进行折行处理,这些都无法通过上面的两种方法处理。
      

  3.   

    其实关键是建立旋转字体
    以当前字体为起点,可使用windows的getobject()函数,检查当前字体的Tlogfont
    结构,并通过对该结构进行适当的修改来创建新的字体。见下例:
    procedure TForm1.Button1Click(Sender: TObject);
    var lf:tlogfont;
    tf:tfont;
    begin
       tf:=tfont.Create;
       tf.Assign(button1.font);
       getobject(tf.handle,sizeof(lf),@lf);
       lf.lfEscapement:=450;
       lf.lfOrientation:=450;
       tf.Handle:=createfontindirect(lf);
       button1.parentfont:=false;
       button1.Font.Assign(tf);
       tf.free;
    end;该例创建了一个新的Font,并把按钮的当前字体赋给Tfont,这将把按钮的字体所有属
    性复制到这个新的Font,然后调用Windows的Getobject()函数来检索该Tfont的逻辑
    字体结构,之后改变该逻辑字体结构的间隔和方向成员以使字体旋转45度,这可通过
    1/10度为单位来说明角度。而后利用windows的GDI命令CreateFontIndirect()创建
    一个新字体,最后释放Tfont。
    并非所有的字体都可以旋转。(TrueType 字体都可旋转)。