【发布时间】:2012-04-11 01:56:53
【问题描述】:
我正在创建一个图像查看器之类的应用程序。我在 Windows 上并使用 .Net
在我的应用程序中,我试图在拖动时突出显示特定区域。 我创建了一个矩形。
Rectangle areaRect = new Rectangle(100,100, 300, 300);
Point ptOld = new Point(0, 0);
Pen rectPen = new Pen(Brushes.White, 3);
protected override void OnPaint(PaintEventArgs e)
{
Graphics dcPaint = e.Graphics;
dcPaint.DrawRectangle(rectPen, areaRect);
}
现在我随着鼠标的移动拖动这个矩形区域。
protected override void OnMouseMove(MouseEventArgs e)
{
Point ptNew = new Point(e.X, e.Y);
int dx = ptNew.X - ptOld.X;
int dy = ptNew.Y - ptOld.Y;
areaRect.Offset(dx, dy);
MoveRect(ptNew);
ptOld = ptNew;
}
我正在尝试用鼠标移动这个矩形
void MoveRect(Point point)
{
Graphics grfxClient = CreateGraphics();
Rectangle tempRectangle = new Rectangle(areaRect.Left, areaRect.Top, areaRect.Width, areaRect.Height);
grfxClient.DrawRectangle(rectPen, tempRectangle);
this.Invalidate();
grfxClient.Dispose();
}
到目前为止,我的代码运行良好。 现在我想将反向拖动区域(拖动区域之外的区域)变暗,我的意思是这个矩形内的区域应该在拖动时突出显示。
知道如何继续。
谢谢。
-潘卡杰
【问题讨论】: