Canvas_Textout_文字右对齐

 Canvas_Textout_文字信息是以坐标点来输入文字的,默认的情况下是左对齐,居中对齐就要自己来确定输出字符串的长度和输出区域的长度来进行显示了。这里主要讲解右对齐输出文字信息,在网上找了找,还真找到了,拿来分享了,希望能够帮助需要的朋友们。

直接上代码了:

使用Textout输出:

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  with image1.Canvas do
  begin
    Font.Name:='宋体';
    Brush.Color:=clblack;
    FillRect(bounds(0,0,320,256));
   Brush.Style:=bsClear;
    Pen.width:=1;
    font.Size:=12;
    Font.Color:=clRed;

    TextOut(50,50,Edit1.Text);  {一般输出}
    TextOut(320-TextWidth(Edit1.Text),25,Edit1.Text);{右对齐到image控件的最右边}
  end;
end;

DrawText 输出方法:

DrawText(
hDC: HDC; {设备句柄}
lpString: PChar; {文本}
nCount: Integer; {要绘制的字符个数; -1 表示全部}
var lpRect: TRect; {矩形结构}
uFormat: UINT {选项}
): Integer; {返回文本高度}

{uFormat 参数的可选值:}
DT_TOP = 0; {顶对齐, 须 or DT_SINGLELINE}
DT_LEFT = 0; {左对齐}
DT_CENTER = 1; {水平居中}
DT_RIGHT = 2; {右对齐}
DT_VCENTER = 4; {垂直居中, 须 or DT_SINGLELINE}
DT_BOTTOM = 8; {底对齐, 须 or DT_SINGLELINE}
DT_WORDBREAK = $10;{给超出边界的单词换行;如果SetTextAlign函数设置了TA_UPDATECP,这里的设置无效}
DT_SINGLELINE = $20; {单行文本}
DT_EXPANDTABS = $40; {扩展制表符, 默认制表跨 8 个字符}
DT_TABSTOP = $80; {TAB 后添加的字符数}
DT_NOCLIP = $100; {使文本不限制在指定的矩形内}
DT_EXTERNALLEADING = $200; {返回的高度包括字体的外部行距}
DT_CALCRECT = $400; {自动检测容纳文本的矩形的高度和宽度, 并返回高度, 但文本不被绘制}
DT_NOPREFIX = $800; {不处理前缀字符(&); 默认时, & 后的字符会被添加下划线}
DT_INTERNAL = $1000; {用系统字体来计算文本高度}
DT_HIDEPREFIX = $00100000; {隐藏下划线}
DT_PREFIXONLY = $00200000; {将 & 解释为前缀}

{举例}
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
MyRect: TRect;
const
str = '万一的 Delphi 博客';
begin
MyRect.Left := X;
MyRect.Top := Y;
MyRect.Right := X + 100;
MyRect.Bottom := Y + 100;

DrawText(Canvas.Handle, str, -1, MyRect, DT_LEFT);
end;


 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值