- UID
- 211491
- 积分
- 0
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2005-1-14
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
大家帮我看看这段代码有什么问题
为什么有的时候在组确实存在的时候
es = pGroupDict->getAt(pzGroupName, (AcDbObject*&)pGroup, AcDb::kForRead);返回的是22,
//
// 判断给定实体是否在给定名字的组内
// pzGroupName为组名字
// arrObjId为要判断的实体数组
// arrObjInGroup为输出的在组中的实体
// arrObjNotInGroup为输出的不在组中的实体
//
bool IfEntAllInGroup(const char* pzGroupName, const AcDbObjectIdArray& arrObjId, AcDbObjectIdArray& arrObjInGroup, AcDbObjectIdArray& arrObjNotInGroup)
{
//AfxMessageBox(pzGroupName);
AcDbDictionary *pGroupDict = NULL;
acdbHostApplicationServices()->workingDatabase()->getGroupDictionary(pGroupDict, AcDb::kForRead);
if(!pGroupDict)
{
//AfxMessageBox("return false;");
return false;
}
Acad::ErrorStatus es;
AcDbGroup* pGroup = NULL;
es = pGroupDict->getAt(pzGroupName, (AcDbObject*&)pGroup, AcDb::kForRead);
if(es != Acad::eOk)
{
//CString strMsg;
//strMsg.Format("%d", es);
//AfxMessageBox(strMsg);
return false;
}
if(!pGroup)
{
pGroupDict->close();
//AfxMessageBox("return false2222222");
return false;
}
pGroupDict->close();
bool bAllInGroup = true;
AcDbObjectIdArray arrTemp;
int nLenght = pGroup->allEntityIds(arrTemp);
for(int i = 0; i < arrObjId.length(); i++)
{
if(bHasObjIdIdObjIdArr(arrTemp, arrObjId))
{
arrObjInGroup.append(arrObjId);
//acutPrintf("\n包含了");
}
else
{
//acutPrintf("\n不包含");
bAllInGroup = false;
arrObjNotInGroup.append(arrObjId);
}
}
pGroup->close();
return bAllInGroup;
} |
|