这两天一直在做一个由basetool继承来的类里画橡皮线。记得大一的时候,刚刚学VC的时候接触到了这个东西,当时只有一个大的印象,就是简单的moveto,lineto,到了AE,自己一下子茫然了,难道要用.net的消息响应函数?也moveto,lineto? 自己一开始看到了一个activew.display里有一个drawpolyline,当时的想法就是画吧,就这样画吧,但是每次都调用refresh的时候,都把refresh后面画的线也给擦掉了,实在是郁闷的不得了,哪有这样的消息反应啊。偶然之中发现了IDisplayfeedback,好家伙,用这个不就和vc里画一样了吗 把symbol地下的rop2设置为xorpen或者notxorpen,一切其他就是先判断是否有上一个终点,临时存储上一个终点。。。。。。。。。。。就是vc的盗版了 学AE或者AO有一段时间了,现在有一个强烈的感觉,微软和esri关系那不是一般的不错,呵呵
另外Arcgis里本来就有一个IRUbberband,不过好像一画上去,对由basetool继承来的类的消息响应就有了问题,而且我现在还没有摸索到怎么把它停下来^_^ 把代码发上来吧 private void DrawLine() { pLineFeed.Symbol.ROP2 = esriRasterOpCode.esriROPXOrPen; if(m_tempPoint!=null) { pLineFeed.Start(m_startpoint); pLineFeed.MoveTo(m_tempPoint); } pLineFeed.Start(m_startpoint); pLineFeed.MoveTo(m_endpoint); m_tempPoint = m_endpoint; } |
|