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

CString CPaintBar::GetEncyrptCode()
{
CString sNull = _T("");
//选择单文本或者多文本
ads_name ent;
ads_point pt;
int nRs = acedEntSel(_T("\n请选择加入的内容:"), 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;
}

CAD中用户选择实体的更多相关文章

  1. CAD当前选择实体发生变化调用事件(com接口)

    主要用到函数说明: _DMxDrawXEvents::SelectModified 当前选择实体发生变化,会调用该事件,详细说明如下: 参数 说明 IDispatch* pAryId 当前被选择的实体 ...

  2. 采集的GPS数据如何正确显示在arcgis和cad中

    利用GPS定位卫星,在全球范围内实时进行定位.导航的系统,称为全球卫星定位系统,简称GPS.GPS是由美国国防部研制建立的一种具有全方位.全天候.全时段.高精度的卫星导航系统,能为全球用户提供低成本. ...

  3. CAD块参照转实体

    经常,需要在CAD中插入块,比如图框,它的类型是INSERT,而不是Line和PolyLine.一般情况下,我们是不会去编辑它的,但有的时候需要选择它,比如在选择打印范围时,默认为过滤掉INSERT类 ...

  4. CAD制图初学入门教程:怎么在CAD中绘制箭头

    在接触CAD的时候大家有没有和小编一样感觉无所适从,所以下面就来和大家分享一个CAD制图初学入门教程,在CAD中绘制箭头.在CAD图形上进行标注内容的时候一般都会使用箭头来进行指示,那具体怎么在CAD ...

  5. WPF整理-使用用户选择主题的颜色和字体

    “Sometimes it's useful to use one of the selected colors or fonts the user has chosen in theWindows ...

  6. Visual Studio工具栏中无法选择调试设备

    Visual Studio工具栏中无法选择调试设备 在Visual Studio工具栏中,默认显示已经识别的设备.用户可以从中选择对应的设备,进行调试和部署App.但是由于误操作,可能导致该选项丢失. ...

  7. Winform开发框架之权限管理系统改进的经验总结(2)-用户选择界面的设计

    在上篇总结随笔<Winform开发框架之权限管理系统改进的经验总结(1)-TreeListLookupEdit控件的使用>介绍了权限管理模块的用户管理部分,其中主要介绍了其中的用户所属公司 ...

  8. Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作

    Entity Framework 的小实例:在项目中添加一个实体类,并做插入操作 1>. 创建一个控制台程序2>. 添加一个 ADO.NET实体数据模型,选择对应的数据库与表(Studen ...

  9. EBS OAF开发中的Java 实体对象(Entity Object)验证功能补充

    EBS OAF开发中的Java 实体对象(Entity Object)验证功能补充 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) EO理论上 ...

随机推荐

  1. className.class.getResourceAsStream与ClassLoader.getSystemResourceAsStream区别

    className.class.getResourceAsStream : 一: 要加载的文件和.class文件在同一目录下,例如:com.x.y 下有类Test.class ,同时有资源文件conf ...

  2. Oracle官方文档学习路线图

  3. oracle面试题目总结

    阿里巴巴公司DBA笔试题  http://searchdatabase.techtarget.com.cn/tips/2/2535002.shtml   注:以下题目,可根据自己情况挑选题目作答,不必 ...

  4. JavaScript 很长很长的JS

    var BaiduUsers = [], WechatUsers = []; var User = function(id, name, phone, gender, age, salary) { t ...

  5. (linux虚拟机)克隆得到的虚拟机修改网卡信息和IP地址,以及DNS

    克隆得到的虚拟机,与原先的系统是一模一样的包括MAC地址和IP地址.需要修改成信息. 克隆完事之后,首先在 点击生成一个新的MAC地址.然后启动,登陆. vim /etc/udev/rules.d/7 ...

  6. 在Windows上安装FFmpeg程序的方法(you-get下载视频必备程序)

    FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.它提供了录制.转换以及流化音视频的完整解决方案.它包含了非常先进的音频/视频编解码库libavcodec. 该程序 ...

  7. JSF-页面导航

    页面导航 1)导航处理涉及的术语: -动作值:触发动作事件的组件的action:EL方法表达式.字符串文字. -结果值:动作组件的action属性的:EL方法表达式的返回值.字符串文字:或结果组件的o ...

  8. Math对象中比较常用的计算数学相关的三个方法

    Math类中提供了三个与取整有关的方法:ceil.floor.round,这些方法的作用与它们的英文名称的含义相对应,例如: ceil的英文意义是天花板,该方法就表示向上取整,所以,Math.ceil ...

  9. Java批量压缩下载

    最近做了一些有关批量压缩下载的功能,网上也找了一些资源,但都不是太全面,所以自己整理一份,已备不时之需. 直接上代码: // 获取项目路径 private static String WEBCLASS ...

  10. Unity3D学习(七):Unity多重采样抗锯齿设置无效的解决办法

    前言 学习Shader的过程中发现模型锯齿严重,于是去Edit--Project Settings--Quality选项下将反锯齿设置为了8X Multi Sampling.结果没有任何改变,如图: ...