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 the Buffer Polygons sample for an example showing howdrawings can be persisted on the display.

How to use

  1. Stub out the code to implement a tool.
  2. Paste the code below into its OnMouseDown event.
  3. Add the tool to an ArcMap toolbar, select it, and click somewhere on the focus map.
[VCPP]
STDMETHODIMP CToolControl1::OnMouseDown(LONG button, LONG shift, LONG x, LONG y)
{
  IDocumentPtr ipDoc;
  m_ipApp->get_Document(&ipDoc);
  IMxDocumentPtr ipMxDoc(ipDoc);
  IMapPtr ipMap;
  ipMxDoc->get_FocusMap(&ipMap);
  IActiveViewPtr ipActiveView(ipMap);
  IScreenDisplayPtr ipScreenDisplay;
  ipActiveView->get_ScreenDisplay(&ipScreenDisplay);
  IRubberBandPtr ipRubberLine(CLSID_RubberLine);

  IRgbColorPtr ipRgbColor(CLSID_RgbColor);
  ipRgbColor->put_Red(255);
  ISimpleLineSymbolPtr ipLineSymbol(CLSID_SimpleLineSymbol);
  ipLineSymbol->put_Color(ipRgbColor);

  ISymbolPtr ipSym(ipLineSymbol);
  IGeometryPtr ipGeometry;
  ipRubberLine->TrackNew(ipScreenDisplay, ipSym, &ipGeometry);

  OLE_HANDLE hDC;
  ipScreenDisplay->get_hDC(&hDC);
  ipScreenDisplay->StartDrawing(hDC, esriNoScreenCache);
  ipScreenDisplay->SetSymbol(ipSym);
  ipScreenDisplay->DrawPolyline(ipGeometry);
  ipScreenDisplay->FinishDrawing();

  return S_OK;
}






Development licensing Deployment licensing
ArcGIS for Desktop Basic ArcGIS for Desktop Basic
ArcGIS for Desktop Standard ArcGIS for Desktop Standard
ArcGIS for Desktop Advanced ArcGIS for Desktop Advanced