ped123 发表于 2006-1-4 20:49:00

高手们指点一下菜鸟

<P>大家看看我下面这个ARX写字的函数哪里有错</P>
<P>其中字体的宽度系数和我设置的不一样</P>
<P>其他地方没问题</P>
<P>各位给看看</P>
<P>或者给个ARX写字的函数源码</P>
<P>谢谢!!</P>
<P>createtext()</P>
<P>{</P>
<P>Acad::ErrorStatus es;<BR>&nbsp; AcDbTextStyleTable *pTsTable;</P>
<P>&nbsp; es = curDoc()-&gt;database()-&gt;getSymbolTable(pTsTable,AcDb::kForRead);<BR>&nbsp; if (es != Acad::eOk)<BR>&nbsp; {<BR>&nbsp;&nbsp; AfxMessageBox("Couldn't get the text style table.");<BR>&nbsp; }</P>
<P>&nbsp; CString theFont = "宋体";</P>
<P>&nbsp; if (!pTsTable-&gt;has((LPTSTR)(LPCSTR)theFont))<BR>&nbsp; {<BR>&nbsp;&nbsp; AcDbTextStyleTableRecord *pStyle = new AcDbTextStyleTableRecord;</P>
<P>&nbsp;&nbsp; pStyle-&gt;setFont((LPTSTR)(LPCTSTR)theFont,Adesk::kFalse,Adesk::kFalse,0,34);<BR>&nbsp;&nbsp; pStyle-&gt;setFileName(theFont);<BR>&nbsp;&nbsp; pStyle-&gt;setBigFontFileName(theFont);</P>
<P>&nbsp;&nbsp; pStyle-&gt;setTextSize(8);<BR>&nbsp;&nbsp; pStyle-&gt;setXScale(0.3);<BR>&nbsp;&nbsp; pStyle-&gt;setObliquingAngle(0);<BR>&nbsp;&nbsp; pStyle-&gt;setName(theFont);<BR>&nbsp;&nbsp; pStyle-&gt;setIsShapeFile(Adesk::kFalse);<BR>&nbsp;&nbsp; pStyle-&gt;setIsVertical(Adesk::kFalse);</P>
<P>&nbsp;&nbsp; pTsTable-&gt;upgradeOpen();<BR>&nbsp;&nbsp; es = pTsTable-&gt;add(pStyle);<BR>&nbsp;&nbsp; if (es != Acad::eOk)<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp; CString message;<BR>&nbsp;&nbsp;&nbsp; message.Format("%d",es);<BR>&nbsp;&nbsp;&nbsp; AfxMessageBox(message);<BR>&nbsp;&nbsp; }<BR>&nbsp;&nbsp; pStyle-&gt;close();<BR>&nbsp; }</P>
<P>&nbsp; AcDbObjectId styleId;</P>
<P>&nbsp; es = pTsTable-&gt;getAt(theFont,styleId);<BR>&nbsp; if (es != Acad::eOk)<BR>&nbsp; {<BR>&nbsp;&nbsp; CString message;<BR>&nbsp;&nbsp; message.Format("%d",es);<BR>&nbsp;&nbsp; AfxMessageBox(message);<BR>&nbsp; }</P>
<P><BR>&nbsp; pTsTable-&gt;close();<BR>&nbsp; </P>
<P>&nbsp; AcDbText * text = new AcDbText(AcGePoint3d(10,10,0),"你好",styleId,8,0);<BR>&nbsp; AcDbBlockTable *pBlockTable;<BR>&nbsp; acdbHostApplicationServices()-&gt;workingDatabase()-&gt;getSymbolTable(pBlockTable,AcDb::kForRead);<BR>&nbsp; AcDbBlockTableRecord *pBlockTableRecord;<BR>&nbsp; pBlockTable-&gt;getAt(ACDB_MODEL_SPACE,pBlockTableRecord,AcDb::kForWrite);<BR>&nbsp; pBlockTable-&gt;close();<BR>&nbsp; AcDbObjectId textId;<BR>&nbsp; es = pBlockTableRecord-&gt;appendAcDbEntity(textId,text);<BR>&nbsp; <BR>&nbsp; text-&gt;close();<BR>&nbsp; pBlockTableRecord-&gt;close();</P>
<P>}</P>
页: [1]
查看完整版本: 高手们指点一下菜鸟