示例#1
0
        private void mcp_MouseMove(object sender, CaptureMouseMoveEventArgs e)
        {
            RectangleMouseCapturer mcp = (RectangleMouseCapturer)sender;
            int dx = mcp.CurrentPosition.X - mcp.StartPosition.X;
            int dy = mcp.CurrentPosition.Y - mcp.StartPosition.Y;

            System.Drawing.Size size = this.Transform.TransformSize(dx, dy);
            mcp.DescRectangle = mcp.UpdateRectangle(mcp.SourceRectangle, size.Width, size.Height);
        }
示例#2
0
        private void cap_Draw(object sender, CaptureMouseMoveEventArgs e)
        {
            DragPointStyle hit = (DragPointStyle)e.Sender.Tag;

            System.Drawing.Rectangle rect  = Rectangle.Ceiling(this.AbsBounds);
            System.Drawing.Point     p1    = e.StartPosition;
            System.Drawing.Point     p2    = e.CurrentPosition;
            SimpleRectangleTransform trans = this.OwnerDocument.EditorControl.GetTransformItemByDescPoint(rect.Left, rect.Top);

            if (trans != null)
            {
                p1   = trans.TransformPoint(p1);
                p2   = trans.TransformPoint(p2);
                rect = DragRectangle.CalcuteDragRectangle(
                    (int)(p2.X - p1.X),
                    (int)(p2.Y - p1.Y),
                    hit,
                    Rectangle.Ceiling(this.AbsBounds));
                if (rect.Width > (int)this.OwnerDocument.Width)
                {
                    rect.Width = (int)this.OwnerDocument.Width;
                }
                if (this.WidthHeightRate > 0.1)
                {
                    rect.Height = (int)(rect.Width / this.WidthHeightRate);
                }
                LastDragBounds = rect;
                rect           = trans.UnTransformRectangle(rect);
                using (ReversibleDrawer drawer =
                           ReversibleDrawer.FromHwnd(this.OwnerDocument.EditorControl.Handle))
                {
                    drawer.PenStyle = PenStyle.PS_DOT;
                    drawer.PenColor = System.Drawing.Color.Red;
                    drawer.DrawRectangle(rect);
                }
            }
        }