码迷,mamicode.com
首页 > 其他好文 > 详细

获取块中文字

时间:2016-07-07 18:59:32      阅读:764      评论:0      收藏:0      [点我收藏+]

标签:

CString Dialog::GetTextForBlock(AcDbBlockReference *pRef, AcGePoint3d pickPoint)
{
AcDbEntity *pEnt;
CString str=_T("");
AcDbVoidPtrArray ptarr = NULL;
Acad::ErrorStatus es=pRef->explode(ptarr);
int iLen = ptarr.length();
for (int i = 0; i < iLen;i++)
{
pEnt = static_cast<AcDbEntity*>(ptarr[i]);
AcDbExtents ext;
pEnt->getGeomExtents(ext);
auto minPt = AcadUtils::ConvertTo2D(ext.minPoint());
auto maxPt = AcadUtils::ConvertTo2D(ext.maxPoint());
AcGePoint2dArray pts;
pts.append(minPt);
pts.append(AcGePoint2d(minPt.x, maxPt.y));
pts.append(maxPt);
pts.append(AcGePoint2d(maxPt.x, minPt.y));
if (XFuntion().PtInRegionInXYPlate(pickPoint, pts) && XFuntion().PtInRegionInXYPlate(pickPoint, pts))//命中了包围框
{
if (pEnt->isKindOf(AcDbText::desc()))
{
AcDbText *pText = NULL;
pText = AcDbText::cast(pEnt);
str = pText->textString();
pText->close();
return str;
}
if (pEnt->isKindOf(AcDbMText::desc()))
{
AcDbMText *pmText = NULL;
pmText = AcDbMText::cast(pEnt);
str = pmText->contents();
pmText->close();
return str;
}
if (pEnt->isKindOf(AcDbBlockReference::desc()))
{
AcDbBlockReference *pRef = AcDbBlockReference::cast(pEnt);
str=GetTextForBlock(pRef, pickPoint);
pRef->close();
}
}
pEnt->close();
}
return str;
}

获取块中文字

标签:

原文地址:http://www.cnblogs.com/xzh1993/p/5650916.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!