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); }
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); } } }