如何判断字符串将在屏幕中显示所占的像素宽度

CaiBirdy 2008-12-08 02:34:05
RT
...全文
273 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
SonicX 2008-12-08
  • 打赏
  • 举报
回复
var
F:TFont;
begin
F:=TFont.Create;
F.size:=12;
//F.Height就是字符的像素高度
...
...
end;

要获得1段文字的区域可以用DrawTextEx
var
TextRect : TRect;
S:String;
begin
S:='abcdesfg';
FillChar(TextRect, Sizeof(TRect), 0);
DrawTextEx(GetDC(GetDesktopWindow), Pchar(S), -1, TextRect, DT_LEFT or DT_CALCRECT, nil);
//Width:=TextRect.Right - TextRect.Left;
//Height:=TextRect.Bottom - TextRect.Top;
...
...
end;
CaiBirdy 2008-12-08
  • 打赏
  • 举报
回复
有没有可以脱离canvas的方法获取?例如根据字体大小计算出来的或者其他什么的。。
yuqianyi1974 2008-12-08
  • 打赏
  • 举报
回复
用api函数 GetTextMetrics
CaiBirdy 2008-12-08
  • 打赏
  • 举报
回复
canvas得画出来 啊。刚试了下,不适合我的程序了。。要用GetTextExtentPoint32函数了
CaiBirdy 2008-12-08
  • 打赏
  • 举报
回复
怎样在一个字符串中截取固定像素长度的字符串呢。。。
bdmh 2008-12-08
  • 打赏
  • 举报
回复
Canvas.TextWidth("字符串")

16,749

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧