Esempio n. 1
0
        public int CatchPointIndex = -1;                                               //捕捉热点的索引

        public override void MouseDown(object sender, MouseEventArgs e, CadFrame objC) //重写鼠标的按下
        {
            CatchPointIndex = -1;                                                      //重置捕捉热点的索引
            if (GetOperShape() != null)
            {
                GetOperShape().SetUnSelected();                         //清除前操作对象中选中的状态
            }
            ArrayList allShapes  = GetRefCadPanel().GetCurrentShapes(); //得到画板上的所有图形
            int       catchPoint = -1;
            int       i          = 0;

            for (; i < allShapes.Count; i++)                                              //对每个图形进行捕捉测试
            {
                catchPoint = ((BaseShape)allShapes[i]).CatchShapPoint(GetNewMovePoint()); //捕捉集合中的一个图形
                if (catchPoint > -1)
                {
                    break;                 //捕获到后,跳出循环
                }
            }
            if (catchPoint > -1)
            {
                CatchPointIndex = catchPoint;            //捕获到后,将临时的热点设置到工具属性中
                ((BaseShape)allShapes[i]).SetSelected(); //设置捕捉到的图形为选中状态
                SetOperShape(((BaseShape)allShapes[i])); //把选中的图形设定到本类的操作图形的状态中
            }
            GetRefCadPanel().Refresh();                  //刷新画板
        }
Esempio n. 2
0
 public override void MouseDown(object sender, MouseEventArgs e, CadFrame objC)//重写线的鼠标按下
 {
     SetOperShape(new RectangleShape());
     GetOperShape().SetP1(GetDownPoint());
     GetOperShape().PenColor = objC.Clr;
     GetOperShape().Penwidth = objC.LineWidth;
     GetRefCadPanel().GetCurrentShapes().Add(GetOperShape());//
 }
Esempio n. 3
0
 public void SuperMouseDown(object sender, MouseEventArgs e, CadFrame objCad) //鼠标按下
 {
     SetUpPoint(new Point(e.X, e.Y));                                         //鼠标的弹起点的设定
     SetDownPoint(new Point(e.X, e.Y));                                       //鼠标按下点的设定
     SetOldMovePoint(new Point(e.X, e.Y));                                    //老的鼠标移动点的设定
     SetNewMovePoint(new Point(e.X, e.Y));                                    //新的鼠标移动点的设定
     SetOldDragPoint(new Point(e.X, e.Y));                                    //老的鼠标拖动点的设定
     SetNewDragPoint(new Point(e.X, e.Y));                                    //新的鼠标拖动点的设定
     MouseDown(sender, e, objCad);                                            //鼠标按下的处理
 }
Esempio n. 4
0
 public abstract void MouseUp(object sender, MouseEventArgs e);                  //鼠标弹起的处理
 public abstract void MouseDown(object sender, MouseEventArgs e, CadFrame objC); //鼠标按下的处理
Esempio n. 5
0
 public void SetRefCadPanel(CadFrame refCadPanel)
 {
     _refCadPanel = refCadPanel;
 }
Esempio n. 6
0
 public static Pen GetPen(CadFrame objCad)//得到画笔
 {
     return(new Pen(objCad.Clr, objCad.LineWidth));
 }