问题发生:
我本来在研究自定义实体,发现如果想让自定义实体发挥作用,应该重载setcolor或者setcolorindex,但是我重写了,设置颜色发现没有任何作用
仔细看了一下文档发现如下内容
0 indicates the entity uses the color of the BlockReference that's displaying it. If the entity is not displayed through a BlockReference (for example, it's directly owned by the model space BlockTableRecord) and its color is 0, then it will display as though its color were 7.
大概的意思就是当前的实体如果想设置颜色成功,必须添加到相应的块定义中,咱们一般的都是modelspace,如果没有添加,否则无论你怎么设置它都是7(白色或者黑色)
解决的方法就是
AcDbPolyline* pPoly = new AcDbPolyline() ;
...
...
1.添加实体到模型空间
2.然后再设置颜色
pPoly->SetColorIndex(1) ;
如果翻转1 2 两步,你会发现不会设置成功