tongyu 发表于 2004-2-8 15:12:00

如何获取文本宽度

请问如何用VBA获取一个文本的宽度,这个文本是还未用AddText 方法添加到当前文档中的。我是想获取文本宽度后以便可以在一定大小的矩形内居中文字。谢谢各位!

myfreemind 发表于 2004-2-8 15:29:00

用GetBoundingBox方法!

tongyu 发表于 2004-2-10 10:42:00

我现在是用这种方法,但他必须要把文本对象创建。我想是在未创建前知道要创建文本的宽度

bluemoon 发表于 2004-2-10 10:48:00

未创建前知道要创建文本的宽度


那你在那里放文字呢?

tongyu 发表于 2004-2-10 10:56:00

我是想获取文本宽度后以便可以在一定大小的矩形内居中文字,我现用的方法是先创建文本,用GetBoundingBox方法取宽度后,计算要放在矩形内插入点后,再用Move 方法将文字移到此位置,但这种方法导致速度慢,请各位高手指点。

topirol 发表于 2004-2-10 10:58:00

你想获取文本宽度后以便可以在一定大小的矩形内居中文字,可以通过算得矩形的中心点坐标,然后addtext,设置


.Alignment =acAlignmentMiddleCenter,               TextAlignmentPoint为矩形中心点就可以达到居中效果了

mccad 发表于 2004-2-10 10:58:00

那你只能先计算保存所有字符的宽度来备用。这样在插入前按照所要填写的字符计算其每个单字符的宽度加起来。

tongyu 发表于 2004-2-10 17:09:00

将单个字符的宽度乘以字符个数是不等于文本宽度的,我试过,好象是文本中间有空隙,影响了全部字符的宽度。谢谢支持!
页: [1]
查看完整版本: 如何获取文本宽度