梦幻神话 发表于 2004-12-4 17:02:00

有关获取AcDbMText的文本内容。。。。。。

利用contents()函数得到的AcDbMText的文本字符内容如下:


{\fNSimSun|b0|i0|c134|p49;\c0;明\fSimSun|b0|i0|c134|p2;\C3;经\C6;通\C4;道\fFangSong<BR>          _GB2312|b0|i0|c134|p49;}


以上字符中包含了字体,大小,颜色等内容,如果只需要提取其中的有效字符(即:明经通道),用什么方法可以做到?


请高手指点.........

dipenghao 发表于 2004-12-4 21:23:00

内容由字体和字体内容构成的,中间以分号分开的.


AcDbMText *pMt;//获得多行标注指针


CString str=pMt-&gt;contents();


int nPos=str.Find(";");


str=str.Mid(nPos+1);//提取后面的就是标注的内容了

梦幻神话 发表于 2004-12-5 10:28:00

这是一种好方法,但是对上面例子似乎行不通。。。。


并非所以";"后面都是有效字符啊。


当然如果AcDbMText中的文件都用相同字体,颜色,大小等的话这种方法就可以。


不是么?

zfbj 发表于 2004-12-5 11:11:00

以前讨论过,将多行文字分解得到单行文字,再提取其字符串吧。

梦幻神话 发表于 2004-12-5 15:23:00

如果能分解成为单行文字(AcDbText)那是最好的了?


可以简单的用TextString()直接获取,


但是我不了解怎样分解AcDbMText,


还是请<A name=73949><FONT color=#000066><B>zfbj</B></FONT></A>版主具体分析一下,3Q

zfbj 发表于 2004-12-5 17:18:00

使用AcDbEntity::explode函数,SDK中相关的例子。
页: [1]
查看完整版本: 有关获取AcDbMText的文本内容。。。。。。