2016-09-27 7 views
1

Я новичок в ArcGis. Я столкнулся с требованием, чтобы мне нужна команда на панели инструментов ArcGis. При щелчке по команде откроется форма Windows, и там будет одна кнопка выбора региона. при нажатии на кнопку текущий пользовательский интерфейс формы должен быть сведен к минимуму, и пользователю будет разрешено рисовать многоугольник. Не могли бы вы помочь в том, как это сделать. Вот код. Я взял обычную кнопку Windows и написал код ниже в событии клика.Как добавить кнопку arcgis в форму окна

 _application = ((IApplication)_hookHelper.Hook); 
     IMxDocument pMxDoc = (IMxDocument)_application.Document; 
     IMap pMap = (IMap)pMxDoc.FocusMap; 

     IActiveView pActiveView = (IActiveView)pMap; 

     if (pActiveView == null) 
     { 
      return; 
     } 

     //// Changing the state of the Window. 
     if (this.WindowState == FormWindowState.Normal || this.WindowState == FormWindowState.Maximized) 
     { 
      this.WindowState = FormWindowState.Minimized; 
      // this.Hide(); 
     } 

     ESRI.ArcGIS.Display.IScreenDisplay screenDisplay = pActiveView.ScreenDisplay; 
     // Constant 
     screenDisplay.StartDrawing(screenDisplay.hDC, (System.Int16)ESRI.ArcGIS.Display.esriScreenCache.esriNoScreenCache); // Explicit Cast 

     ESRI.ArcGIS.Display.IRgbColor rgbColor = new ESRI.ArcGIS.Display.RgbColorClass(); 
     rgbColor.Blue = 111; 

     ESRI.ArcGIS.Display.IColor color = rgbColor; // Implicit Cast 
     ESRI.ArcGIS.Display.ISimpleFillSymbol simpleFillSymbol = new ESRI.ArcGIS.Display.SimpleFillSymbolClass(); 
     simpleFillSymbol.Color = color; 

     ESRI.ArcGIS.Display.ISymbol symbol = simpleFillSymbol as ESRI.ArcGIS.Display.ISymbol; // Dynamic Cast 
     ESRI.ArcGIS.Display.IRubberBand rubberBand = new ESRI.ArcGIS.Display.RubberRectangularPolygonClass(); 
     // ESRI.ArcGIS.Display.IRubberBand rubberBand = new ESRI.ArcGIS.Display.RubberPolygonClass(); 
     ESRI.ArcGIS.Geometry.IGeometry geometry = rubberBand.TrackNew(screenDisplay, symbol); 
     screenDisplay.SetSymbol(symbol); 
     screenDisplay.DrawPolygon(geometry); 
     screenDisplay.FinishDrawing(); 

Я также не получаю никакого события мыши, и пользовательский интерфейс не минимизируется при запуске рисования многоугольника. Кто-нибудь может помочь.

ответ