Exemple #1
0
        public override void OnMouseDown(int Button, int Shift, int X, int Y)
        {
            if (Button == 2)
            {
                return;
            }

            INewLineFeedback pLineFeed;

            if (m_point_From == null)
            {
                m_point_From = m_hookHelper.ActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(X, Y);

                //拖拽效果
                m_pFeedback = new NewLineFeedbackClass();
                pLineFeed   = (INewLineFeedback)m_pFeedback;
                pLineFeed.Start(m_point_From);
                if (m_pFeedback != null)
                {
                    m_pFeedback.Display = m_hookHelper.ActiveView.ScreenDisplay;
                }
            }
            else if (m_point_To == null)
            {
                m_point_To = m_hookHelper.ActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(X, Y);
                //添加拖拽点
                pLineFeed = (INewLineFeedback)m_pFeedback;
                pLineFeed.AddPoint(m_point_To);
            }
            else if (m_point_Center == null)
            {
                m_point_Center = m_hookHelper.ActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(X, Y);
                //添加拖拽点
                pLineFeed = (INewLineFeedback)m_pFeedback;
                pLineFeed.AddPoint(m_point_Center);
                pLineFeed.Stop();

                ESRI.ArcGIS.Geometry.ICircularArc circularArc = new ESRI.ArcGIS.Geometry.CircularArcClass();
                circularArc.PutCoords(m_point_Center, m_point_From, m_point_To, ESRI.ArcGIS.Geometry.esriArcOrientation.esriArcClockwise);
                DrawCircleByCenterAndRadius(m_pCurrentLayer, circularArc, m_hookHelper.ActiveView.ScreenDisplay);
                //画完后清空
                m_point_From   = null;
                m_point_To     = null;
                m_point_Center = null;
            }
        }
        public override void OnMouseDown(int Button, int Shift, int X, int Y)
        {
            if (Button == 2) return;

            INewLineFeedback pLineFeed;
            if (m_point_From == null)
            {
                m_point_From = m_hookHelper.ActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(X, Y);

                //��קЧ��
                m_pFeedback = new NewLineFeedbackClass();
                pLineFeed = (INewLineFeedback)m_pFeedback;
                pLineFeed.Start(m_point_From);
                if (m_pFeedback != null)
                    m_pFeedback.Display = m_hookHelper.ActiveView.ScreenDisplay;
            }
            else if (m_point_To == null)
            {
                m_point_To = m_hookHelper.ActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(X, Y);
                //�����ק��
                pLineFeed = (INewLineFeedback)m_pFeedback;
                pLineFeed.AddPoint(m_point_To);
            }
            else if (m_point_Center == null)
            {
                m_point_Center = m_hookHelper.ActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(X, Y);
                //�����ק��
                pLineFeed = (INewLineFeedback)m_pFeedback;
                pLineFeed.AddPoint(m_point_Center);
                pLineFeed.Stop();

                ESRI.ArcGIS.Geometry.ICircularArc circularArc = new ESRI.ArcGIS.Geometry.CircularArcClass();
                circularArc.PutCoords(m_point_Center, m_point_From, m_point_To, ESRI.ArcGIS.Geometry.esriArcOrientation.esriArcClockwise);
                DrawCircleByCenterAndRadius(m_pCurrentLayer, circularArc, m_hookHelper.ActiveView.ScreenDisplay);
                //��������
                m_point_From = null;
                m_point_To = null;
                m_point_Center = null;
            }
        }