dyheng 发表于 2005-5-30 11:31:00

[求助]mccad大哥请进(如何在VBA中创建文字样式)

按照你的方法我已创建出了字体样式,但不知是哪没用对,写出后的字并没有按我的意愿显示,而是字较粗,也较宽,且“文字样式”对话框中的“应用“处于可点击状态,连“预览”框中的字也是粗宽型的





当我点击”应用“后,字体才变为我想要的样式,然后再点击文字样式,一切也都正常了,根据这样,应该是我设了样式后没有运用,可没有运用怎么字体又是宋体呢?






Private Function SetTextStyle(TextStyleName As String, TTFName As String) As AcadTextStyle<BR>                       On Error Resume Next<BR>                       Set SetTextStyle = ThisDrawing.TextStyles.Add(TextStyleName)<BR>                       SetTextStyle.Height = 3.5<BR>                       SetTextStyle.Width = 0.7<BR>                       SetTextStyle.SetFont TTFName, False, False, 0, 0<BR>End Function


sub Test()


SetTextStyle "仿宋", "仿宋_GB2312"


Set objText = objBlock.AddText(strText,pnt4, 3.5)                                       


objText.StyleName = "仿宋"


end sub


后来我又修改了点什么,新建文件运行,结果点“文字样式”后,出来第幅图,但这次连“应用”也点击不了了!请问是怎么回事啊?

wyj7485 发表于 2005-5-30 11:46:00

加一语句看行不行:


ThisDrawing.Application.Update

dyheng 发表于 2005-5-30 12:05:00

SetTextStyle "仿宋", "仿宋_GB2312"


Set objText = objBlock.AddText(strText,pnt4, 3.5)                                       


objText.StyleName = "仿宋"


ThisDrawing.Application.Update


end sub


这样也不行啊,字还是没有变回来!

dyheng 发表于 2005-5-30 13:39:00

知道了,SetTextStyle.SetFont TTFName, False, False, 0, 0SetTextStyle.SetFont TTFName, False, False, 0, 0 这个方法中的charset参数应设为1,即DEFAULT_CHARSET,然后再设objtext.ScaleFactor = 0.7即可以达到目的。


谢谢各位了!
页: [1]
查看完整版本: [求助]mccad大哥请进(如何在VBA中创建文字样式)