这两天一直在做一个由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;
}
自己一开始看到了一个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;
}