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

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

利用contents()函数得到的AcDbMText的文本字符内容如下:
{\fNSimSun|b0|i0|c134|p49;\c0;明\fSimSun|b0|i0|c134|p2;\C3;经\C6;通\C4;道\fFangSong
          _GB2312|b0|i0|c134|p49;}
以上字符中包含了字体,大小,颜色等内容,如果只需要提取其中的有效字符(即:乐筑天下),用什么方法可以做到?
请高手指点.........

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

内容由字体和字体内容构成的,中间以分号分开的.
AcDbMText *pMt;//获得多行标注指针
CString str=pMt->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,
还是请zfbj版主具体分析一下,3Q

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

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