Ejemplo n.º 1
0
        public override void MouseUp(MouseEventArgs e)
        {
            if (this.Resizing)
            {
                this.Resizing = false;
                POINT vNewLeftTop = new POINT();

                // 缩放后的Rect的LeftTop
                if (FStartPt.X < FEndPt.X)
                {
                    vNewLeftTop.X = FStartPt.X;
                }
                else
                {
                    vNewLeftTop.X = FEndPt.X;
                }

                if (FStartPt.Y < FEndPt.Y)
                {
                    vNewLeftTop.Y = FStartPt.Y;
                }
                else
                {
                    vNewLeftTop.Y = FEndPt.Y;
                }

                vNewLeftTop.X = vNewLeftTop.X - FLeftTop.X;
                vNewLeftTop.Y = vNewLeftTop.Y - FLeftTop.Y;

                FStartPt.Offset(-vNewLeftTop.X, -vNewLeftTop.Y);
                FEndPt.Offset(-vNewLeftTop.X, -vNewLeftTop.Y);

                this.Left = this.Left + vNewLeftTop.X;
                this.Top  = this.Top + vNewLeftTop.Y;

                this.Width  = Math.Abs(FEndPt.X - FStartPt.X);
                this.Height = Math.Abs(FEndPt.Y - FStartPt.Y);
            }
        }
Ejemplo n.º 2
0
        public override void MouseMove(MouseEventArgs e)
        {
            if (Active)
            {
                if (this.Resizing)
                {
                    if (FMouseDownObj == HCLineObj.cloLeftOrTop)
                    {
                        FStartPt.Offset(e.X - this.FResizeX, e.Y - this.FResizeY);
                    }
                    else
                    {
                        FEndPt.Offset(e.X - this.FResizeX, e.Y - this.FResizeY);
                    }

                    this.FResizeX = e.X;
                    this.FResizeY = e.Y;

                    HC.GCursor = Cursors.Cross;
                }
                else
                {
                    HCLineObj vLineObj = GetLineObjAt(e.X, e.Y);
                    if ((vLineObj == HCLineObj.cloLeftOrTop) || (vLineObj == HCLineObj.cloRightOrBottom))
                    {
                        HC.GCursor = Cursors.Cross;
                    }
                    else
                    if (vLineObj != HCLineObj.cloNone)
                    {
                        HC.GCursor = Cursors.SizeAll;
                    }
                }
            }
            else
            {
                HC.GCursor = Cursors.Default;
            }
        }