天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 71|回复: 0

arx 添加需要的线型

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
[code]class CLineTypeComboBox : public CAcUiLineTypeComboBox
{
public:
    CLineTypeComboBox ();

    virtual ~CLineTypeComboBox ();

    virtual BOOL OnSelectOther (BOOL isOther2, int curSel, int& newSel);

    virtual void OnComboBoxInit ();   
};
#include "StdAfx.h"
#include "LineTypeComboBox.h"

CLineTypeComboBox::CLineTypeComboBox()
{
}

CLineTypeComboBox::~CLineTypeComboBox()
{
}

void CLineTypeComboBox::OnComboBoxInit ()
{       
        Acad::ErrorStatus es;
        //用父类初始化
        CAcUiLineTypeComboBox::OnComboBoxInit();       
        std::vector<CString> arrstrLtName;
        //如果需要添加新线型,只需定义好新的宏名,在此加入即可...
        arrstrLtName.push_back(HH_NEWLINETYPE_001);
        arrstrLtName.push_back(HH_NEWLINETYPE_002);
        //新建线型,使用户在界面上能够选择到新增的线型
        AcDbDatabase *pCurDb=acdbHostApplicationServices()->workingDatabase();
        AcDbLinetypeTable  *pLinetypeTable;       
        es = pCurDb->getSymbolTable(pLinetypeTable, AcDb::kForWrite);
        if (es != Acad::eOk)
        {
                return;
        }
        int i=0;
        for (i=0; i<(int)arrstrLtName.size(); i++)
        {
                CString strLtName = arrstrLtName.at(i);
                if (!pLinetypeTable->has(strLtName))
                {
                        AcDbLinetypeTableRecord  *pLinetypeRecord = new AcDbLinetypeTableRecord;
                        pLinetypeRecord->setName(strLtName);
                        if (i == 0)
                        {
                                pLinetypeRecord->setComments(_T("新增线型")+strLtName+_T("—>————<—"));       
                        }
                        else if (i == 1)
                        {
                                pLinetypeRecord->setComments(_T("新增线型")+strLtName+_T("—>>———<<—"));       
                        }

                        AcDbObjectId idLT = AcDbObjectId::kNull;
                        es =  pLinetypeTable->add(idLT,pLinetypeRecord);
                        CString LtName = strLtName;
                        CAcUiLTypeRecord* pLTypeRecord = CreateLTRecord(LtName, idLT);
                        CAcUiLineTypeComboBox::AddLTypeToControl(pLTypeRecord);
                        pLinetypeRecord->close();
                }
        }
        pLinetypeTable->close();       
};       

BOOL CLineTypeComboBox::OnSelectOther(BOOL isOther2, int curSel, int& newSel)
{
        return __super::OnSelectOther(isOther2, curSel, newSel);
}[/code]

 

 

 

 

arx  添加需要的线型
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

GMT+8, 2024-11-1 10:33 , Processed in 0.151337 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表