下面为OBJECT-ARX创建多行文本的代码,记录

McDbMText* Mx::AddMText(IN McDbBlockTableRecord* pBlkRec,
IN LPCTSTR pszContents,
IN McGePoint3d pos,
IN double width,
IN double textHeight,
IN double rotation /*= 0.0*/,
IN McGeVector3d direction /*= McGeVector3d::kXAxis*/,
IN int attachment /*= McDbMText::kTopLeft*/,
IN int flowDirection /*= McDbMText::kLtoR*/,
IN double dFactor /*= 1.0*/,
IN McDb::LineSpacingStyle style /* = McDb::kAtLeast*/
)
{
McDbObjectId retId;
McDbMText* pMText = new McDbMText;
pMText->setContents(pszContents);
pMText->setLocation(pos);
pMText->setWidth(width);
pMText->setTextHeight(textHeight);
pMText->setRotation(rotation);
pMText->setDirection(direction);
pMText->setAttachment(McDbMText::AttachmentPoint(attachment) );
pMText->setFlowDirection(McDbMText::FlowDirection(flowDirection) );
pMText->setLineSpacingFactor(dFactor);
pMText->setLineSpacingFactor(style);
pBlkRec->appendAcDbEntity(retId,pMText);
return pMText;
}

实例:
前期准备
Acad::ErrorStatus es;
AcDbDatabase * pDatabase;
AcDbBlockTable *pBlockTable;
McDbBlockTableRecord * pBTableRec1;
pDatabase = MxDraw::GetDatabase(MxDraw::GetCurOcxHandle());
es = pDatabase->getBlockTable(pBlockTable,McDb::kForRead);
if(es != Acad::eOk){
AfxMessageBox(_T("获得块表失败"));
}
es = pBlockTable->getAt(MCDB_MODEL_SPACE, pBTableRec1,McDb::kForWrite);
if(es != Acad::eOk){
AfxMessageBox(_T("获得块记录失败"));
}
McGePoint3d pos(0,0,0);
AcDbObjectId textStyleId=CadDiyFunc::CreateTextStyle(_T("wzbzTextStyle"), _T("宋体"), 1);

方法一
McDbMText* mText = Mx::AddMText(pBTableRec1,_T("登鹳雀楼\\P白日依山尽\\P \\P黄河入海流\\P欲穷千里目\\P更上一层楼"),pos,100,300,0,McGeVector3d::kXAxis,McDbMText::kTopCenter,McDbMText::kLtoR,1.0,McDb::kAtLeast);
mText->setTextStyle(textStyleId);
mText->close();

方法二
McDbObjectId retId;
McDbMText* pMText = new McDbMText;
pMText->setContents(_T("登鹳雀楼\\P白日依山尽\\P黄河入海流\\P欲穷千里目\\P更上一层楼"));
pMText->setLocation(pos);
pMText->setWidth(100);
pMText->setTextHeight(30);
pMText->setRotation(0);
pMText->setAttachment(McDbMText::AttachmentPoint(McDbMText::kTopCenter) );
pMText->setTextStyle(textStyleId);
pBTableRec1->appendAcDbEntity(retId,pMText);
pMText->close();

善后
pBTableRec1->close();
pBlockTable->close();

注:\\P为换行 \\P空格\\P 换两行

【CAD】创建多行文本的更多相关文章

  1. CAD得到多行文本(com接口VB语言)

    主要用到函数说明: MxDrawXCustomFunction::Mx_GetMTextContent 得到多行文本的,不包括格式控制符中的字符串值,详细说明如下: 参数 说明 LONG lId 多行 ...

  2. NGUI 3.5教程(二)Label 标签 (Hello world)、多行文本

    写在前面:     本文将创建NGUI的第一个样例.依照编程传统,第一个样例,就是做一个Hello world 显示出来.NGUI.我们用Label来实现 . 欢迎大家纠错.拍砖!原创非常辛苦,如有转 ...

  3. sharepoint更新多行文本webparth

    前台 <script> function Copy() { var value = document.getElementById("<%=BodyBox.ClientID ...

  4. 禁止多行文本框textarea拖拽

    禁止多行文本框textarea拖拽: textarea { resize: none; } resize这个是用于元素缩放,它可以取以下几个值: none 默认值 both 允许水平方向及垂直方向缩放 ...

  5. Yii console 创建命令行应用

    大家都知道PHP的程序没有进程概念,而且生命周期极短,无法实现一些定时计划或者是计划任务,今天我们看看在YII框架中如何使用计划任务创建命令行应用. 1.在 console/controllers 文 ...

  6. python小练习1:设计这样一个函数,在桌面的文件夹上创建10个文本,以数字给它们命名。

    python小练习1:设计这样一个函数,在桌面的文件夹上创建10个文本,以数字给它们命名. 使用for循环即可实现: for name in range(1,11): desktop_path='C: ...

  7. html5 表单 填表 select 下拉 textarea多行文本 output Js计算结果

    <select>     下拉 <select>下有很多属性 name        其实有name就有value了,因为button提交的都是? name=value的格式, ...

  8. 创建展开行明细编辑表单的 CRUD 应用

    http://www.runoob.com/jeasyui/jeasyui-app-crud3.html jQuery EasyUI 应用 - 创建展开行明细编辑表单的 CRUD 应用 当切换数据网格 ...

  9. 3、easyUI-创建 CRUD可创建展开行明细编辑dataGrid(表格)

    同样在上一节中讲到可以编辑的表格,现在讲一般用到的最后一个datagrid(表格)相关的展开明细可编辑的表格: 第三中表格主要应用场景在:列出表格信息,然后点击可以查看详细信息(此处是全部可以编辑,可 ...

随机推荐

  1. xampp本地服务器+HBuilder配置php环境

    HBuilder配置PHP环境: 下载,运行HBuilder编辑器 打开右侧小窗口,点击设置图标—>设置web服务器—>外置web服务器                    输入你想要浏 ...

  2. linux 查看 PHP 的默认版本。

    命令 env env:显示当前用户的环境变量: which php

  3. wp后台更新瓷片

    下载源码 还有一种方式,更新瓷片方式 1. /// <summary> /// 定时更新磁贴 /// </summary> public class ShellUpdate { ...

  4. 【转载】C# DataGridView 通过代码设置样式

    // 表格上下左右自适应 dataGridView.Anchor = (AnchorStyles.Top | AnchorStyles.Right | AnchorStyles.Bottom | An ...

  5. 如何彻底删除TFS上的团队项目 For VS 2017

    参考 Visual Studio 2017 TFSDeleteProject.exe 位置 X:\Program Files (x86)\Microsoft Visual Studio\2017\En ...

  6. 「CF140C」 New Year Snowmen

    题目链接 戳这 贪心+优先队列,只要每次将数量前三大的半径拿出来就好了,用优先队列维护一下 #include<bits/stdc++.h> #define rg register #def ...

  7. 【转】C#使用Oracle.ManagedDataAccess.dll

    源地址:https://www.cnblogs.com/goldenbridge/p/7812081.html

  8. oracle取order by的第一条数据

    SELECT * FROM (SELECT * FROM TABLE_NAME ORDER BY COL1) WHERE ROWNUM = 1; 备注: 1.不能给 (SELECT * FROM TA ...

  9. 洛谷P1345 [USACO5.4]奶牛的电信Telecowmunication(最小割)

    题目描述 农夫约翰的奶牛们喜欢通过电邮保持联系,于是她们建立了一个奶牛电脑网络,以便互相交流.这些机器用如下的方式发送电邮:如果存在一个由c台电脑组成的序列a1,a2,...,a(c),且a1与a2相 ...

  10. vue-i18n.esm.js?a925:14 [vue-i18n] Value of key '图标管理' is not a string!

    解决方案:在项目的index.js文件中修改配置,让在创建 i18n 示例的时候加上参数去掉这些 warning const i18n = new VueI18n({ locale: lang, // ...