Example #1
0
        private void frmMeasure_Load(object sender, EventArgs e)
        {
            ClsDeclare.g_txtMeasure      = this.txtMeasure;
            ClsDeclare.g_txtMeasure.Text = "如果量算距离,请点击长度量算按钮,然后画线" + "\r" + "\n" + "如果量算面积,请点击面积量算按钮,然后画多边形" + "\r" + "\n" + "如果量算要素,请点击要素量算按钮,然后选择要素";
            ClsDeclare.g_blnSnap         = false;

            InitialButtonItems();
            ClsDeclare.g_UnitConverter = new ClsConvertUnit(ClsMeasureSnap.GetMapUnits(ClsDeclare.g_pMap));
            SetButtonCheck(ClsMeasureSnap.GetMapUnits(ClsDeclare.g_pMap));
        }
        /// <summary>
        /// Occurs when this tool is clicked
        /// </summary>
        public override void OnClick()
        {
            if (m_hookHelper != null)
            {
                m_pActiveView         = m_hookHelper.ActiveView;
                m_pScreenDisplay      = m_pActiveView.ScreenDisplay;
                m_pNewPolygonFeedback = null;

                ClsDeclare.g_txtMeasure.Clear();
                ClsMeasureSnap.g_pNowSnapPnt  = null;
                ClsMeasureSnap.g_pLastSnapPnt = null;
                ClsMeasureSnap.g_pSnapSymbol  = ClsMeasureSnap.SetMeasureSnapSymbol() as ISymbol;
            }
            else if (m_sceneHookHelper != null)
            {
            }
            else if (m_globeHookHelper != null)
            {
            }
        }
 public override void OnMouseMove(int Button, int Shift, int X, int Y)
 {
     if (m_hookHelper != null)
     {
         IPoint pPoint;
         pPoint    = m_pScreenDisplay.DisplayTransformation.ToMapPoint(X, Y);
         m_blnSnap = false;
         if (ClsDeclare.g_blnSnap == true)
         {
             m_pSnapPoint = ClsMeasureSnap.MeasureSnapPoint(ref pPoint);
             if (m_pSnapPoint != null)
             {
                 m_blnSnap = true;
             }
             else
             {
                 m_blnSnap = false;
             }
         }
         if (m_pNewPolygonFeedback != null)
         {
             if (m_blnSnap == true)
             {
                 m_pNewPolygonFeedback.MoveTo(m_pSnapPoint);
             }
             else
             {
                 m_pNewPolygonFeedback.MoveTo(pPoint);
             }
         }
     }
     else if (m_sceneHookHelper != null)
     {
     }
     else if (m_globeHookHelper != null)
     {
     }
 }