zoukankan      html  css  js  c++  java
  • CAD中用户选择实体

    在CAD的很多操作中都会有需要用户选择实体的时候,这里将我最近项目中用到的方法分享一下,程序原意是希望用户选择一个单行文本或者多行文本,并返回所选文本的内容,直接上代码:

    CString CPaintBar::GetEncyrptCode()
    {
        CString sNull = _T("");
        //选择单文本或者多文本
        ads_name ent;
        ads_point pt;
        int nRs = acedEntSel(_T("
    请选择加入的内容:"), ent, pt);
        if (RTNORM != nRs)
        {
            AfxMessageBox(_T("获取失败!"));
            acedSSFree(ent);
            return sNull;
        }
    
        //获得所选实体Id
        AcDbObjectId entId;
        Acad::ErrorStatus es = acdbGetObjectId(entId, ent);
        if (Acad::eOk != es)
        {
            AfxMessageBox(_T("获取id失败!"));
            acedSSFree(ent);
            return sNull;
        }
        acedSSFree(ent);
    
        //判断所选实体是否是单文本或者多文本
        AcDbEntity *pEnt = NULL;
        es = acdbOpenObject(pEnt, entId, AcDb::kForRead);
        if (Acad::eOk != es)
        {
            AfxMessageBox(_T("获取实体失败!"));
            return sNull;
        }
        CString str;
        if (pEnt->isKindOf(AcDbText::desc()))
        {
            AcDbText *pText = NULL;
            pText = AcDbText::cast(pEnt);
            str = pText->textString();
            pText->close();
        }
        else if (pEnt->isKindOf(AcDbMText::desc()))
        {
            AcDbMText *pmText = NULL;
            pmText = AcDbMText::cast(pEnt);
            str = pmText->contents();
            pmText->close();
        }
        else
        {
            AfxMessageBox(_T("获取实体不是文本类型!"));
            pEnt->close();
            return sNull;
        }
        pEnt->close();
        return str;
    }
  • 相关阅读:
    php 实现店铺装修3
    脸如何瘦
    第一次约会看电影的细节 了解好男人的标准看他是否合格
    14细节 看男人爱你到什么程度:第一次约会时他沉默寡言
    男生第一次约会穿什么?
    提高心理素质 2
    心理素质差的原因
    如何提高心理素质
    不适合做老婆的女人,五大特质(转载)
    心理素质差的表现
  • 原文地址:https://www.cnblogs.com/pengjun-shanghai/p/5360089.html
Copyright © 2011-2022 走看看