How to draw polylines


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

  1. Add a new UITool control onto any toolbar.
  2. Paste the code below into its OnMouseDown event.
  3. Mind the name of the control, the sample assumes it is called UIToolControl1.
  4. Completely close down VBA so mouse events will fire.
  5. Select this tool, click on the map to create a line; double-click to stop.
[VBA]
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