如何在矩形框内纵向输出文本,就像Word中的竖排文本框那样? 如题目,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Label.Caption := 'a'#13'b'#13;如果要自己画:DrawText(... , DT_WORDBREAK ); 非常感谢风舞轻扬的回答,但是和我的意图还有差距,也是因为我没有把问题说清楚。Word中竖排文本框中的英文单词和汉字的显示形式不同,它是整个单词合在一起纵向排列,因此每个字母的方向都做了一个顺时针90度旋转。而且在矩形框内,如果文本的长度超过了矩形的高度,还要进行折行处理,这些都无法通过上面的两种方法处理。 其实关键是建立旋转字体以当前字体为起点,可使用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 字体都可旋转)。 初学者请教问题 INDY TCP控件的问题 远程数据库问题(access) 什么叫左连接,右连接,子表? 请教dbgrid中连续改变值的问题~~ procedure CMMouseEnter(var msg:TMessage); message CM_MOUSEENTER;解释什么意思?谢谢 在线等有关TClientDataSet更新后台数据库的问题 delphi串口通信 一个关于TABLE FILTER 的小问题。。急 Delphi 4.0能否完全兼容Delphi 3.0程序,如果不能有何区别? 急问EXCEL问题 菜鸟求教打印的问题
DrawText(... , DT_WORDBREAK );
Word中竖排文本框中的英文单词和汉字的显示形式不同,它是整个单词合在一起纵向排列,因此每个字母的方向都做了一个顺时针90度旋转。而且在矩形框内,如果文本的长度超过了矩形的高度,还要进行折行处理,这些都无法通过上面的两种方法处理。
以当前字体为起点,可使用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 字体都可旋转)。