Use this subroutine to draw a Polyline feature on the screen. With this example the polyline will not persist on the screen; it will disappear when the screen next refreshes. See How to draw polygon buffers for an example showing how drawings can be persisted on the display.
How to use
- Add a new UITool control onto any toolbar.
- Paste the code below into its OnMouseDown event.
- Mind the name of the control, the sample assumes it is called UIToolControl1.
- Completely close down VBA so mouse events will fire.
- Select this tool, click on the map to create a line; double-click to stop.
Private Sub UIToolControl1_MouseDown(ByVal button As Long, ByVal shift As Long, ByVal x As Long, ByVal y As Long)
Dim pMxDoc As IMxDocument
Dim pActiveView As IActiveView
Dim pScreenDisplay As IScreenDisplay
Dim pRubberLine As IRubberBand
Dim pLineSymbol As ISimpleLineSymbol
Dim pRgbColor As IRgbColor
Dim pPolyline As IPolyline
Set pMxDoc = Application.Document
Set pActiveView = pMxDoc.FocusMap
Set pScreenDisplay = pActiveView.ScreenDisplay
Set pRubberLine = New RubberLine
Set pLineSymbol = New SimpleLineSymbol
Set pRgbColor = New RgbColor
pRgbColor.Red = 255
pLineSymbol.Color = pRgbColor
Set pPolyline = pRubberLine.TrackNew(pScreenDisplay, pLineSymbol)
With pScreenDisplay
.StartDrawing pScreenDisplay.hdc, esriNoScreenCache
.SetSymbol pLineSymbol
.DrawPolyline pPolyline
.FinishDrawing
End With
End Sub