请教一个问题:关于DrawText( )函数 ( 积分: 100 )

  • 主题发起人 主题发起人 zfs88
  • 开始时间 开始时间
Z

zfs88

Unregistered / Unconfirmed
GUEST, unregistred user!
关于 DrawText函数说明中,如下一行文字,让人百思不得其解:
“DT_EXPANDTABS 描绘文字的时候,对制表站进行扩展。默认的制表站间距是8个字符。但是,可用DT_TABSTOP标志改变这项设定 ”

我始终不知道这个DT_EXPANDTABS 是派什么用的?不用它好象也没啥问题啊。
 
关注

有谁知道 这个函数 如何调整 文字换行时 的行间距?
 
不用DT_EXPASNDTABS就不会绘制Tab符
procedure TForm1.Button1Click(Sender: TObject);
const
S = 'Test'#9'Test2';
var
R: TRect;
begin
R := Rect(10, 10, 100, 50);
DrawText(Canvas.Handle, S, Length(S), R, DT_LEFT);
R := Rect(10, 30, 100, 100);
DrawText(Canvas.Handle, S, Length(S), R, DT_LEFT or DT_EXPANDTABS);
end;

结果:
TestTest2

Test Test2 //中间的空间就是Tab符了,一般为8个空格
 
試一下。
 
不用DT_EXPASNDTABS就不会绘制Tab符? 就这么简单?

2楼的ANiDelphi写的程序我之前为了试验也写过,不用DT_EXPASNDTABS时好象就是不画制表符(其实也就是无法输出字符 #9 )而已。(注:Tab键的 ASCII码为9)
 
有点晕
//Tab键的 ASCII码为9
那么#9就是一个Tab了
//默认的制表站间距是8个字符
那么Test与Test2之间的空白就是Tab了
//无法输出字符 #9
Tab显示出来就是一段空白,如果在编辑框用退格键的话一下就删除了,要输出#9,那就要自己转换了。const S = 'Test#9Test2'; 像这样
 
接受答案了.
 
后退
顶部