Drawing a point on the screen
The following code draws a point on the screen in the ActiveView where the mouse is clicked. The x,y coordinates come from a mousedown click event when the user interacts with the application. In this example, the point is not persisted on the screen but is removed after the next screen refresh.
[VB.NET]
Public Sub DrawPoint(ByVal activeView As ESRI.ArcGIS.Carto.IActiveView, ByVal x As System.Int32, ByVal y As System.Int32)
If activeView Is Nothing Then
Return
End If
Dim screenDisplay As ESRI.ArcGIS.Display.IScreenDisplay = activeView.ScreenDisplay
' Constant.
screenDisplay.StartDrawing(screenDisplay.hDC, CShort(ESRI.ArcGIS.Display.esriScreenCache.esriNoScreenCache))
Dim simpleMarkerSymbol As ESRI.ArcGIS.Display.ISimpleMarkerSymbol = New ESRI.ArcGIS.Display.SimpleMarkerSymbolClass
Dim symbol As ESRI.ArcGIS.Display.ISymbol = TryCast(simpleMarkerSymbol, ESRI.ArcGIS.Display.ISymbol) ' Dynamic cast.
screenDisplay.SetSymbol(symbol)
Dim displayTransformation As ESRI.ArcGIS.Display.IDisplayTransformation = screenDisplay.DisplayTransformation
' X and y are in device coordinates.
Dim point As ESRI.ArcGIS.Geometry.IPoint = displayTransformation.ToMapPoint(x, y)
screenDisplay.DrawPoint(point)
screenDisplay.FinishDrawing()
End Sub
[C#]
public void DrawPoint(ESRI.ArcGIS.Carto.IActiveView activeView, System.Int32 x,
System.Int32 y)
{
if (activeView == null)
{
return ;
}
ESRI.ArcGIS.Display.IScreenDisplay screenDisplay = activeView.ScreenDisplay;
// Constant.
screenDisplay.StartDrawing(screenDisplay.hDC, (System.Int16)
ESRI.ArcGIS.Display.esriScreenCache.esriNoScreenCache); // Explicit cast.
ESRI.ArcGIS.Display.ISimpleMarkerSymbol simpleMarkerSymbol = new
ESRI.ArcGIS.Display.SimpleMarkerSymbolClass();
ESRI.ArcGIS.Display.ISymbol symbol = simpleMarkerSymbol as
ESRI.ArcGIS.Display.ISymbol; // Dynamic cast.
screenDisplay.SetSymbol(symbol);
ESRI.ArcGIS.Display.IDisplayTransformation displayTransformation =
screenDisplay.DisplayTransformation;
// X and y are in device coordinates.
ESRI.ArcGIS.Geometry.IPoint point = displayTransformation.ToMapPoint(x, y);
screenDisplay.DrawPoint(point);
screenDisplay.FinishDrawing();
}
See Also:
How to draw a polyline on the screenHow to draw a polygon on the screen
How to draw a rectangle on the screen
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 |
Engine Developer Kit | Engine |