AcDbPolyline* pLine = new AcDbPolyline;
......
AcDbObjectId idPline = AddToCurrentSpace(pLine);
ads_name namepLine;
acdbGetAdsName(namepLine, idPline);
acedSSSetFirst(namepLine, NULL);
这样不行,是不是因为 namepLine 只是一个实体的名字,而不是选择集呢?
怎么转换为选择集呢?[hr]
选中实体的话,应该用acedSSGet而不是acedSSSetFirst
另外 pLine 在加入database之后需要close..
用 acedSSAdd 把新添的实体名字 添加到一个空的选择集中就行了。
令外,AddCommand 中的 第三个参数要是 ACRX_CMD_REDRAW | ACRX_CMD_USEPICKSET
AcDbObjectId idPline = AddToCurrentSpace(pLine);
ads_name namepLine, ssPline;
acdbGetAdsName(namepLine, idPline);
acedSSAdd(namepLine, NULL, ssPline);
ads_sssetfirst(ssPline, NULL);[hr]用acedEntSel函数,在你单击直线的时候就选中了它,然后你就可以根据获取的ads_name为所欲为了。