画像ビューアのようなアプリケーションを作成しています。私は 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();
}
この時点までの私のコードは正常に機能しています。ここで、INVERSE ドラッグ領域 (ドラッグ領域の外側にある領域) を暗くしたいと思います。つまり、ドラッグ中にこの Rectangle 内にある領域を強調表示する必要があります。
続行する方法についてのアイデア。
ありがとう。
-パンカジ