怎么通过编程修改CAD里MText的宋体字为黑体?
<p>我觉得应该是修改MText的类似(fontStyle)属性,就可以实现,但是看半天VBA帮助,竟然找不到字体集,也不知道怎么给赋值,真是菜鸟啊,请高手指点.</p><p>我的情况是这样的,在一张CAD图里有很多MText字,需要把他们从宋体,改为黑体,就这点要求,努力了2天还是没有结果.请高手帮忙...具体应该是遍历CAD图对象,如果是MTex对象,则把它们的字体改为黑体.谢谢了</p> <p>我的做法是重新建一个专门用于Mtext的字体样式,把这个字体样式用setfont方法设置成想要的字体,并且可以改宽高比等等属性。</p><p>据我所知好像MTEXT没有font的属性。</p> 呵呵,setfont方法我也看过,但是第一个字体参数,怎么填?请weianhui帮忙写一下。我查了半天,没有字体的说明,瞎摸也没摸着,谢谢啦,。。。或者像weianhui 所说的,怎么重建Mtext字体样式? 呵呵,找到了setfont的使用方法了,拿出来大家共享。不知道能不能解决问题,回单位试试。。。SetFont设置字体
原型
short setfont(long obj_id, BSTR big_font_name,BSTR font_name,double height, double width_scale, double oblique);
说明
设置文字的字体的类型,大小,高度,宽度,倾斜度等.
参数
1.long obj_id //元素ID
2.BSTRbig_font_name //中文字体
3.BSTRfont_name //英文字体
4.doubleheight //字体的高度
5.doublewidth_scale //字体宽度系数
6.doubleoblique //字体的倾斜度
返回值
成功返回为1,否则返回为0
范例
-Visual Basic 6.0
...
objid = MicroDrawOcx1.CreateText("Microdraw ", 30, 56, "黑体", 30 / 180 * PI, 3, 5,
0)
objid = MicroDrawOcx1.SetFont(objid, "隶书", "", 5, 3, 25 / 180 * PI)MicroDrawOcx1.ZoomAll
-Delphi7.0
...
procedure TForm1.Button29Click(Sender: TObject);
var
i : integer;
begin
i := self.MicroDrawOcx1.GetSelectObject(0);
//得到选择的第一个元素(选择的元素为文字)
self.MicroDrawOcx1.SetFont(i,'宋体',''
,80,1,MICRODRAWOCXLib_TLB.MPI/6);
//设置选择的元素的字体,缩放比例为1,倾斜角度为30°
self.MicroDrawOcx1.RedrawAll;
//刷新当前的屏幕
end;
end.
-Microsoft Visual Studio .NET 2003
...
private void button45_Click(object sender, System.EventArgs e)
{
int id,type;
id = this.axMicroDrawOcx1.GetSelectObject(0);//得到选择的第一个元素
type = this.axMicroDrawOcx1.GetObjectType((MICRODRAWOCXLib.ENTITY_OPTION)id);
//得到选择元素的类型
if (type ==(int) MICRODRAWOCXLib.OBJECT_TYPE_OPTION.AS_TYPE_TEXT)
{//判断元素的类型是否为文字
this.axMicroDrawOcx1.SetFont(id,"隶书","",20,1,0);
//设置文字的字体为隶书
this.axMicroDrawOcx1.BuildDraw(id);//重新创建文字
this.axMicroDrawOcx1.RedrawAll();//刷新当前的窗口
}
} <p>就差一点点,可以解决问题了.各位高手请指点:</p><p>sub setMTextFont()</p><p> Dim iCount As Integer</p><p> iCount=ThisDrawing.ModelSpece.Count</p><p> Dim iIndex As Integer</p><p> For iIndex=0 to iCount-1</p><p> if ThisDrawing.ModelSpace.Item(iIndex).ObjectName="caDbMText" then</p><p>???ThisDrawing.ModelSpace.Item(iIndex).ObjectID怎么转为MText对象,然后给MText改字体呢(也就是怎么跟setfont接合)</p><p>next</p><p>End Sub</p> 糟糕,我发现MText好象没有setfont方法.<strong><font face="Verdana" color="#61b713">weianhui帮忙,其他高手请帮忙...</font></strong> 自己解决.提示,在acdMText对象的textString属性,用字符串直接替换就行.需要代码发<a href="mailto:lytofly@mail.china.com">lytofly@mail.china.com</a>
页:
[1]