ObjectARX自定义实体中使用AcDbText文字对齐方式的正确方式
ObjectARX自定义实体中使用文字对齐方式的正确方式
这是在自定义实体中借用AcDbText来显示文字的时候,设置对齐方式可能不生效的解决方式。
关键的两个语句,应该同样适用于jig,后台打开数据库生成文字,块定义生成文字。
效果展示
关键代码
//-----------------------------------------------------------------------------
//----- AcDbEntity protocols
Adesk::Boolean custEntity::subWorldDraw (AcGiWorldDraw *mode) {
assertReadEnabled () ;
AcDbObjectPointer<AcDbText> pText;
Acad::ErrorStatus es= pText.create();
if (Acad::eOk == es)
{
//setDatabaseDefaults() 非常关键的一句 来自 azj4win
pText->setDatabaseDefaults();
pText->setColorIndex(1);
pText->setTextString(_T("呵呵"));
pText->setHorizontalMode(AcDb::kTextCenter);
pText->setVerticalMode(AcDb::kTextVertMid);
pText->setAlignmentPoint(m_StartPoint*0.5+m_EndPoint.asVector()*0.5);
pText->setHeight(2.5);
//adjustAlignment(pDb) 关键2
pText->adjustAlignment(curDoc()->database());
//不要使用这种方式,否则颜色之类的属性无法显示,来自651864346的问题
//pText->worldDraw(mode);
//正常用法
mode->geometry().draw(pText);
}
return (AcDbEntity::subWorldDraw (mode)) ;
}
分类:
ObjectARX
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用