用VB做AUTOCAD的工艺卡片的二次开发

我用VB做了AUTOCAD的工艺卡片的二次开发(从数据库调入相应的内容)。
部分代码如下:
If Array1(Count1).TagString = "毛坯种类" Then
Array1(Count1).TextString = "" & comRoughType.Text
End If
但是,运行程序后,显示的结果,视觉效果太差。
以下四幅图,是我的解释。
请问,在程序里面如何直接设置。让其显示时,就是图四的界面?
就是在图三中,有部分内容,跑到了边界外了。

用"属性参照"对象的 GetBoundingBox 方法获取该属性文字的左下角点和右上角点,用二者的横坐标相减得到宽度,再与表格的宽度比较.如果属性文字的宽度大于表格宽度,就计算并设置属性文字的合理的宽度因子(ScaleFactor属性),
Dim MinPoint As Variant, MaxPoint As Variant
Array1(Count1).GetBoundingBox MinPoint, MaxPoint
If MaxPoint(0) - MinPoint(0) > 表格宽度 Then Array1(Count1).ScaleFactor = 表格宽度 / (MaxPoint(0) - MinPoint(0)) Else Array1(Count1).ScaleFactor = 1追问

谢谢,我按你所说的,确实取到了:“结构用无缝钢管GB/T8162(热轧)”的字体宽度值。
但是“表格宽度”,这个内容,我想用原来属性的宽度(就是打散后“毛坯种类”的字体所占的宽度),不知有没有办法取到?
否则的话,表格宽度,也并不是好取的。(若有办法,也行,谢谢啊)
谢谢。

追答

那就把修改之前的属性文字的宽度记下来,然后再修改属性文字和它的宽度因子
Dim MinPoint As Variant, MaxPoint As Variant, OldWidth As Double
If Array1(Count1).TagString = "毛坯种类" Then
Array1(Count1).GetBoundingBox MinPoint, MaxPoint
OldWidth = MaxPoint(0) - MinPoint(0)
Array1(Count1).TextString = comRoughType.Text
Array1(Count1).ScaleFactor = 1
Array1(Count1).GetBoundingBox MinPoint, MaxPoint
Array1(Count1).ScaleFactor = OldWidth / (MaxPoint(0) - MinPoint(0))
End If

温馨提示:答案为网友推荐,仅供参考
相似回答