admin 发表于 2024-9-25 13:25:09

如何设置AcDbMText对齐方式

//_T("\\pxql;")        居左
                //_T("\\pxqr;")        居右
                //_T("\\pxqc;")        居中
                //_T("\\pxqd;")        分散对齐
                //MtextInfoId 文字ID
                AcDbObjectPointer<AcDbMText> pEnt_1(MtextInfoId, AcDb::kForWrite);
                if (pEnt_1.openStatus() == Acad::eOk)
                {

                        ACHAR * pAChar = pEnt_1->contents();//此函数返回文字内容和对齐样式
                        //eg:文字内容是小青峰 格式设置为居左
                        //在CAD属性栏里面可以看到文字内容是:\pxql;小青峰
                        //CAD是利用_T("\\pxql;")_T("\\pxqr;")_T("\\pxqc;")_T("\\pxqd;") 参数设置多行文本的对齐方式
                        CString strTmp(pAChar);
                        int nIndex = strTmp.Replace(_T("\\pxql;"),_T("\\pxqc;")); //由原来的居左设置为居中
                       
                        int nIndex = pEnt_1->setContents(strTmp);//将格式和内容一同设置进去就可以了

                        pEnt_1->setAttachment(AcDbMText::kMiddleCenter);//对正点 这个函数只是设置文字的插入点位置,对齐方式设置不了
                        
                     pEnt_1->text(); //获得仅仅是文字内容

                        //自己想要什么效果 自己组合好了,

                }
页: [1]
查看完整版本: 如何设置AcDbMText对齐方式