【CAD】创建多行文本
下面为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】创建多行文本的更多相关文章
- CAD得到多行文本(com接口VB语言)
主要用到函数说明: MxDrawXCustomFunction::Mx_GetMTextContent 得到多行文本的,不包括格式控制符中的字符串值,详细说明如下: 参数 说明 LONG lId 多行 ...
- NGUI 3.5教程(二)Label 标签 (Hello world)、多行文本
写在前面: 本文将创建NGUI的第一个样例.依照编程传统,第一个样例,就是做一个Hello world 显示出来.NGUI.我们用Label来实现 . 欢迎大家纠错.拍砖!原创非常辛苦,如有转 ...
- sharepoint更新多行文本webparth
前台 <script> function Copy() { var value = document.getElementById("<%=BodyBox.ClientID ...
- 禁止多行文本框textarea拖拽
禁止多行文本框textarea拖拽: textarea { resize: none; } resize这个是用于元素缩放,它可以取以下几个值: none 默认值 both 允许水平方向及垂直方向缩放 ...
- Yii console 创建命令行应用
大家都知道PHP的程序没有进程概念,而且生命周期极短,无法实现一些定时计划或者是计划任务,今天我们看看在YII框架中如何使用计划任务创建命令行应用. 1.在 console/controllers 文 ...
- python小练习1:设计这样一个函数,在桌面的文件夹上创建10个文本,以数字给它们命名。
python小练习1:设计这样一个函数,在桌面的文件夹上创建10个文本,以数字给它们命名. 使用for循环即可实现: for name in range(1,11): desktop_path='C: ...
- html5 表单 填表 select 下拉 textarea多行文本 output Js计算结果
<select> 下拉 <select>下有很多属性 name 其实有name就有value了,因为button提交的都是? name=value的格式, ...
- 创建展开行明细编辑表单的 CRUD 应用
http://www.runoob.com/jeasyui/jeasyui-app-crud3.html jQuery EasyUI 应用 - 创建展开行明细编辑表单的 CRUD 应用 当切换数据网格 ...
- 3、easyUI-创建 CRUD可创建展开行明细编辑dataGrid(表格)
同样在上一节中讲到可以编辑的表格,现在讲一般用到的最后一个datagrid(表格)相关的展开明细可编辑的表格: 第三中表格主要应用场景在:列出表格信息,然后点击可以查看详细信息(此处是全部可以编辑,可 ...
随机推荐
- MongoDB整理笔记のGUI操作
值得幸运的是,其实MongoDB也有像类似于PL/SQL一样的界面操作工具操作MongoDB. 下面就来介绍几款不同的界面工具,大家各取所需! MongoVUE 主页:http://www.mongo ...
- Linux 命令之chmod
立贴今日吉,不断更新,欢迎斧正,支持为感! 1. chmod --权限控制 chmod [-cfvR] [--help] [--version] mode file... 说明 : Linux/Uni ...
- Sobel算法
最近看了一些Sobel算法,并试了一下,源码如下: private void Sobel(Bitmap img) { int width = img.Width; int height = img.H ...
- 为什么要引入zookeeper系统
为什么要引入zookeeper系统?这篇文章将说明几个引入zookeeper的原因,首先,先对zookeeper做一个简单的介绍. zookeeper是hadoop下的一个子项目,它是一个针对大型分布 ...
- 以太坊系列之十八: 百行go代码构建p2p聊天室
百行go代码构建p2p聊天室 百行go代码构建p2p聊天室 1. 上手使用 2. whisper 原理 3. 源码解读 3.1 参数说明 3.1 连接主节点 3.2 我的标识 3.2 配置我的节点 3 ...
- List_Delete
/*Sorting from little to large use List*/ #include <stdio.h> /* printf, scanf, NULL */ #includ ...
- python2和python3 分别连接MySQL的代码
python2中的写法如下: #coding=utf-8 import MySQLdb try: conn = MySQLdb.connect(host='localhost', port=3306, ...
- Python实现——一元线性回归(最小二乘法)
2019/3/24 线性回归--最小二乘法公式法 暂时用python成功做出来了图像,但是其中涉及到的公式还是更多的来自于网络,尤其是最小二乘法公式中的两个系数的求解,不过目前看了下书高数也会马上提及 ...
- [译文]Casperjs1.1.0参考文档-快速开始
快速开始 只要casperjs被正确安装,你就可以开始写你的第一个脚本,你可以使用javascript或者coffiescript编译脚本. 提示: 如果你对javascript不是很熟悉,最好先看专 ...
- flink学习笔记-flink实战
说明:本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKh ...