gdiplus中的字体问题

dododo 2007-05-24 07:18:06
下面这段代码想取得输出文本的长和宽,但是字体为Ms Sans Serif是取得的场合宽都是0,我发誓:我的系统中有这种字体,但是如果是其他的字体,比如“微软雅黑”,"宋体",这些都是可以的,除了Ms Sans Serif外,其他的一些字体也是取得的长和宽也是0,请问为什么?

var
afontFamily: TGPFontFamily;
afont: TGPFont;
g:TGPGraphics;
Rect:TGPRectF;
begin
afontFamily:=TGPFontFamily.Create('MS Sans Serif');
aFont:=TGPFont.Create(aFontFamily,9,FontStyleRegular, UnitPixel);
Rect.X:=0;
Rect.Y:=0;
Rect.Width:=0;
Rect.Height:=0;
G:=TGPGraphics.Create(Canvas.Handle);
G.MeasureString('Test',-1,aFont,MakePoint(0.0,0.0),Rect);
g.Free;
aFont.Free;
aFontFamily.Free;
ShowMessage(Inttostr(trunc(Rect.Width)));
ShowMessage(Inttostr(trunc(Rect.Height)));
end;
...全文
366 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿发伯 2007-05-28
  • 打赏
  • 举报
回复
这个问题可以解决的,将:
afontFamily:=TGPFontFamily.Create('MS Sans Serif');
改为:
afontFamily := TGPFontFamily.GenericSansSerif;
楚人无衣 2007-05-27
  • 打赏
  • 举报
回复
其为设备字体,GDI+不支持,同类还有MS Serif、Roman、System等。
请看Delphi5开发人员指南第八章第八节
brightyang 2007-05-25
  • 打赏
  • 举报
回复
不支持这种字体

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi GAME,图形处理/多媒体
社区管理员
  • GAME,图形处理/多媒体社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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