private void axMapControl1_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e)
{
IPoint pPoint = new PointClass();
pPoint.PutCoords(e.mapX, e.mapY);
{
IPoint pPoint = new PointClass();
pPoint.PutCoords(e.mapX, e.mapY);
pFeedBack = new NewEnvelopeFeedbackClass();
pFeedBack.Display = axMapControl1.ActiveView.ScreenDisplay;
pFeedBack.Start(pPoint);
}
pFeedBack.Display = axMapControl1.ActiveView.ScreenDisplay;
pFeedBack.Start(pPoint);
}
private void axMapControl1_OnMouseMove(object sender, IMapControlEvents2_OnMouseMoveEvent e)
{
IPoint pPoint = new PointClass();
pPoint.PutCoords(e.mapX, e.mapY);
pFeedBack.MoveTo(pPoint);
}
{
IPoint pPoint = new PointClass();
pPoint.PutCoords(e.mapX, e.mapY);
pFeedBack.MoveTo(pPoint);
}
private void axMapControl1_OnMouseUp(object sender, IMapControlEvents2_OnMouseUpEvent e)
{
IGeometry pGeometry;
pGeometry = pFeedBack.Stop();
pFeedBack = null;
IActiveView pActiveView = axMapControl1.ActiveView;
AddRectangle(pGeometry, pActiveView);
}
private void AddRectangle(IGeometry pGeometry, IActiveView pActiveView)
{
{
IGeometry pGeometry;
pGeometry = pFeedBack.Stop();
pFeedBack = null;
IActiveView pActiveView = axMapControl1.ActiveView;
AddRectangle(pGeometry, pActiveView);
}
private void AddRectangle(IGeometry pGeometry, IActiveView pActiveView)
{
ISimpleLineSymbol pSimpleLineSymbol = new SimpleLineSymbolClass();
pSimpleLineSymbol.Color = GetRGBColor(255, 215, 0);
pSimpleLineSymbol.Style = esriSimpleLineStyle.esriSLSDash;
pSimpleLineSymbol.Width = 2;
pSimpleLineSymbol.Color = GetRGBColor(255, 215, 0);
pSimpleLineSymbol.Style = esriSimpleLineStyle.esriSLSDash;
pSimpleLineSymbol.Width = 2;
ISimpleFillSymbol pSimpleFillSymbol = new SimpleFillSymbolClass();
pSimpleFillSymbol.Color = GetRGBColor(0, 80, 30);
pSimpleFillSymbol.Outline = pSimpleLineSymbol;
pSimpleFillSymbol.Style = esriSimpleFillStyle.esriSFSSolid;
pSimpleFillSymbol.Color = GetRGBColor(0, 80, 30);
pSimpleFillSymbol.Outline = pSimpleLineSymbol;
pSimpleFillSymbol.Style = esriSimpleFillStyle.esriSFSSolid;
IElement pElement;
pElement = new RectangleElementClass();
pElement.Geometry = pGeometry;//同画圆不同,这里直接引用的pGeometry
pElement = new RectangleElementClass();
pElement.Geometry = pGeometry;//同画圆不同,这里直接引用的pGeometry
IFillShapeElement pFillShapeElement;
pFillShapeElement = pElement as IFillShapeElement;
pFillShapeElement.Symbol = pSimpleFillSymbol;
pFillShapeElement = pElement as IFillShapeElement;
pFillShapeElement.Symbol = pSimpleFillSymbol;
IGraphicsContainer pGraphicsContainer = axMapControl1.ActiveView as IGraphicsContainer;
pGraphicsContainer.AddElement((IElement)pFillShapeElement, 0);
axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);
}
private IRgbColor GetRGBColor(int red, int green, int blue)
{
IRgbColor rGBColor = new RgbColorClass();
rGBColor.Red = red;
rGBColor.Green = green;
rGBColor.Blue = blue;
return rGBColor;
}
pGraphicsContainer.AddElement((IElement)pFillShapeElement, 0);
axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);
}
private IRgbColor GetRGBColor(int red, int green, int blue)
{
IRgbColor rGBColor = new RgbColorClass();
rGBColor.Red = red;
rGBColor.Green = green;
rGBColor.Blue = blue;
return rGBColor;
}