• ObjectARX创建组简单实例之setSelectable


    ObjectARX创建组简单实例之setSelectable

    效果展示

    创建组函数代码

    	static Acad::ErrorStatus CreateGroup(const AcDbObjectIdArray objIds,AcDbObjectId &outGroupId,const CString sGroupName=_T("*"),AcDbDatabase *pDb=curDoc()->database())
    	{
    		if (objIds.length()<1)
    		{
    			return Acad::eNullObjectId;
    		}
    		if (pDb == NULL)
    		{
    			return Acad::eNoDatabase;
    		}
    		AcDbDictionary *pGroupDic=NULL;
    		Acad::ErrorStatus es= pDb->getGroupDictionary(pGroupDic,AcDb::kForRead);
    		if (Acad::eOk != es) return es;
    		AcDbDictionaryPointer pGroupDicPtr;
    		es = pGroupDicPtr.acquire(pGroupDic);
    		if (Acad::eOk != es)
    		{
    			pGroupDic->close();
    			return es;
    		}
    		if (sGroupName != _T("*"))
    		{
    			es= pGroupDicPtr->getAt(sGroupName,outGroupId);
    			if (Acad::eOk == es)
    			{
    				return Acad::eDuplicateKey;
    			}
    		}
    		es= pGroupDicPtr->upgradeOpen();
    		if (Acad::eOk != es) return es;
    		AcDbObjectPointer<AcDbGroup> pGroup;
    		es=pGroup.create();
    		if (Acad::eOk != es) return es;
    		es= pGroup->append(objIds);
    		if (Acad::eOk != es) return es;
    		//设置 可以选择,如果为false,则会没有组选择效果
    		es = pGroup->setSelectable(true);
    		return pGroupDicPtr->setAt(sGroupName,pGroup,outGroupId);
    	}
    

    调用示例

    		ads_name ss;
    		if (RTNORM != acedSSGet(NULL,NULL,NULL,NULL,ss))
    		{
    			return;
    		}
    		AcDbObjectIdArray objIds;
    		Adesk::Int32 nLength=0;
    		acedSSLength(ss,&nLength);
    		for (int i=0;i<nLength;i++)
    		{
    			ads_name ent;
    			acedSSName(ss,i,ent);
    			AcDbObjectId objId;
    			acdbGetObjectId(objId,ent);
    			if (!objId.isNull())
    			{
    				objIds.append(objId);
    			}
    		}
    		AcDbObjectId groupId;
    		Acad::ErrorStatus es = CreateGroup(objIds,groupId,_T("AAAA"));
    		if (Acad::eOk != es)
    		{
    			acutPrintf(_T("\n创建失败,错误码=%s"),acadErrorStatusText(es));			
    		}
    		else
    		{
    			acutPrintf(_T("\n创建成功"));
    		}
    
  • 相关阅读:
    ASP.NET MVC4.0+ WebAPI+EasyUI+KnockOutJS快速开发框架 通用权限管理系统
    74.Java异常处理机制
    emmm
    数据库关系代数
    汇编实验二 2进制转16进制
    汇编实验一 显示字符串
    JustOj 1386: 众数的数量
    Codeforces 124A
    Codeforces 456A
    Codeforces 237A
  • 原文地址:https://www.cnblogs.com/edata/p/16074230.html
Copyright © 2020-2023  润新知