peterchang 发表于 2005-6-11 16:50:00

新建文字式样,有问题请教!

请看下面代码:


AcDbObjectId       CSetTextStyle::settextstyle()<BR>{<BR>       AcDbObjectId recId;<BR>       AcDbTextStyleTable *pTextStyleTable;<BR>       acdbHostApplicationServices()-&gt;workingDatabase()-&gt;getSymbolTable(pTextStyleTable,AcDb::kForWrite);<BR>       if (!pTextStyleTable-&gt;has((LPTSTR)(LPCSTR)m_Font)){<BR>                               AcDbTextStyleTableRecord *pRecord = new AcDbTextStyleTableRecord;<BR>                                                       pRecord-&gt;setFont((LPTSTR)(LPCTSTR)m_Font,m_bold,m_italic,m_charset,m_pitchAndFamily);<BR>                                                       pRecord-&gt;setFileName(m_FileName);<BR>                                                       pRecord-&gt;setBigFontFileName(m_BigFontFileName);<BR>                                                       pRecord-&gt;setTextSize(m_size);<BR>                                                       pRecord-&gt;setXScale(m_xScale);<BR>                                                       pRecord-&gt;setObliquingAngle(m_obliquingAngle);<BR>                                                       pRecord-&gt;setIsShapeFile(m_shape);<BR>                                                       pRecord-&gt;setIsVertical(m_vertical);<BR>                                                       pTextStyleTable-&gt;add(recId,pRecord);<BR>                                                       pRecord-&gt;close(); <BR>                                                       }<BR>               pTextStyleTable-&gt;close();<BR>       return recId;<BR>       }


或下面代码:AcDbObjectId       CSetTextStyle::settextstyle()<BR>{<BR>       AcDbObjectId recId;<BR>       AcDbTextStyleTable *pTextStyleTable;<BR>       acdbHostApplicationServices()-&gt;workingDatabase()-&gt;getSymbolTable(pTextStyleTable,AcDb::kForRead);<BR>       if (!pTextStyleTable-&gt;has((LPTSTR)(LPCSTR)m_Font)){<BR>                               AcDbTextStyleTableRecord *pRecord = new AcDbTextStyleTableRecord;<BR>                                                       pRecord-&gt;setFont((LPTSTR)(LPCTSTR)m_Font,m_bold,m_italic,m_charset,m_pitchAndFamily);<BR>                                                       pRecord-&gt;setFileName(m_FileName);<BR>                                                       pRecord-&gt;setBigFontFileName(m_BigFontFileName);<BR>                                                       pRecord-&gt;setTextSize(m_size);<BR>                                                       pRecord-&gt;setXScale(m_xScale);<BR>                                                       pRecord-&gt;setObliquingAngle(m_obliquingAngle);<BR>                                                       pRecord-&gt;setIsShapeFile(m_shape);<BR>                                                       pRecord-&gt;setIsVertical(m_vertical);<BR>                                                       pTextStyleTable-&gt;upgradeOpen();<BR>                                                       pTextStyleTable-&gt;add( recId,pRecord);<BR>                                                       pRecord-&gt;close();<BR>                       <BR>                                                       }<BR>               pTextStyleTable-&gt;close();<BR>       return recId;<BR>       }<BR>总归显示错误: <A href="mailto:dbobji.cpp@5717:eNotOpenForWrite" target="_blank" ><FONT color=#000000>dbobji.cpp@5717:eNotOpenForWrite</FONT></A>",可是我已经让pTextStyleTable可写了,为什莫慧这样呢,原因何在,请教大家!!!!

peterchang 发表于 2005-6-13 16:37:00

调试发现原因在pTextStyleTable-&gt;add( recId,pRecord);原因何在

wuddy 发表于 2005-6-13 22:27:00

应该是你在设置字体过程中的问题导致了无法把实体加入块表,

页: [1]
查看完整版本: 新建文字式样,有问题请教!