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