有关获取AcDbMText的文本内容。。。。。。
利用contents()函数得到的AcDbMText的文本字符内容如下:{\fNSimSun|b0|i0|c134|p49;\c0;明\fSimSun|b0|i0|c134|p2;\C3;经\C6;通\C4;道\fFangSong<BR> _GB2312|b0|i0|c134|p49;}
以上字符中包含了字体,大小,颜色等内容,如果只需要提取其中的有效字符(即:明经通道),用什么方法可以做到?
请高手指点......... 内容由字体和字体内容构成的,中间以分号分开的.
AcDbMText *pMt;//获得多行标注指针
CString str=pMt->contents();
int nPos=str.Find(";");
str=str.Mid(nPos+1);//提取后面的就是标注的内容了 这是一种好方法,但是对上面例子似乎行不通。。。。
并非所以";"后面都是有效字符啊。
当然如果AcDbMText中的文件都用相同字体,颜色,大小等的话这种方法就可以。
不是么? 以前讨论过,将多行文字分解得到单行文字,再提取其字符串吧。 如果能分解成为单行文字(AcDbText)那是最好的了?
可以简单的用TextString()直接获取,
但是我不了解怎样分解AcDbMText,
还是请<A name=73949><FONT color=#000066><B>zfbj</B></FONT></A>版主具体分析一下,3Q 使用AcDbEntity::explode函数,SDK中相关的例子。
页:
[1]