使用IRUbberBand接口,以前没怎么用过,今天学习时发现了这个接口就拿来说说,希望大家能够多多了解。
IRUbberBand接口有两个方法:1,TrackExisting方法;2,TrackNew方法;
我们经常需要在项目中画地理要素(Feature)时或者画元素(Element),其实IRUbberBand接口就实现了绘制几何形体(Geometry)的方法TrackNew,以及移动一个一个几何形体的方法TrackExisting。
下面是代码程序例子,请大家参考(VBA):
(1) Dim pmxd As IMxDocument
Set pmxd = ThisDocument
Dim pRudder As IRubberBand
Set pRudder = New RubberEnvelope‘’创建一个新对象Envelope对象
‘’使用TrackNew方法创建一个Envelope并赋予地图的范围
pmxd.ActiveView.Extent = pRudder.TrackNew(pmxd.ActiveView.ScreenDisplay, Nothing)''返回的是IGeometry类型
pmxd.ActiveView.Refresh
(2)在VBA下添加一个Itoolcommand,并添加如下代码
If button = 1 Then ' 左键按下创建新的多边形
‘’调用tracknew方法
Set pPoly = pRubberPoly.TrackNew(pMXDoc.ActiveView.ScreenDisplay, Nothing)
If Not pPoly Is Nothing Then
'创建新的元素,并把tracknew所绘制的多边形赋予这个元素的几何对象
Set pElem = New PolygonElement
pElem.Geometry = pPoly
'添加到地图中
pGraCont.AddElement pElem, 0
End If
Elseif button =2 then‘’如何用户按下右键,那么就调用trackexisting方法,拖拽选用的元素
Set pGraContSel = pGraCont
'确定选中了一个元素
If pGraContSel.ElementSelectionCount > 0 Then
If pGraContSel.ElementSelectionCount = 1 Then‘’选中一个
Set pElem = (本文已被浏览 次) | | |