![]() |
【转帖】请教如何 根据层名获得层的id
请教如何 根据层名获得层的id
请教如何 根据层名获得层的id 是用acdbgetobjectid(acdbobjectid& objid,const ads_name objname);这个函数吗?要使的话cstring和ads_name类型要怎么转换,如何给这个函数传值? 我走的很慢,可我从不后退! 嘿嘿,如果vlisp我倒是会,arx我可不会 获取图层的控制需要得到layer table,遍历里面的layer需要iterator acdblayertable *lt; acdblayertableiterator *it; acdbhostapplicationservices()->workingdatabase()->getlayertable(lt,acdb::kforread);//取得layer table lt->newiterator(it);//建立一个iterator for(;!it->done();it->step())//it->done()是结束判断,it->step()是遍历下一个,类似于链表或线形表 { acdblayertablerecord *ltr; it->getrecord(ltr,acdb::kforread);//通过it可以得到record char* text; ltr->getname(text);得到名字,注意这段内存是不可以动的,这个东西就赤裸的指向系统内部的那个存储图层名的地方 ltr->close();//record必须关闭! acutprintf("%s",text); } delete it;//it必须用这个方式删除 lt->close();//lt必须关闭 注意iterator的用法,就如同stl的iterator的用法,记得用完删除! 我的qq 172522850 错了,呵呵,你问的是这个阿: acdblayertable *lt; acdbhostapplicationservices()->workingdatabase()->getlayertable(lt,acdb::kforread); lt->getat(图层名,id) lt->close(); 使用getat函数,直接得到 我的qq 172522850 |
| 所有的时间均为北京时间。 现在的时间是 10:07 PM. |