응용 프로그램의 이미지 뷰어를 생성 중입니다. 나는 Windows에 있고 닷넷을 사용 중이다.드래그하는 동안 사각형 영역 강조 표시
내 응용 프로그램에서 드래그하는 동안 특정 영역을 강조 표시하려고합니다. 직사각형을 만들었습니다.
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();
}
내 코드를이 RECT를 이동하려합니다. 이제 INVERSE 드래그 영역 (드래그 영역 밖에있는 영역)을 어둡게하고 싶습니다. 드래그하는 동안이 Rectangle 영역이 강조 표시되어야 함을 의미합니다.
어떻게 진행할 지 생각해보십시오.
감사합니다.
-Pankaj
감사합니다. Lucas, 그것은 정확하게 작동합니다. 예 사용자 정의 PictureBox 클래스의 맨 위에이 사각형을 만들고이 Rect를 움직일뿐 아니라 완벽하게 크기를 조정할 수 있습니다 (모서리 중 하나를 잡고). 다시 한 번 감사드립니다. – Pankaj
도움이 된 것을 기쁘게 생각합니다. :). 내 대답을 올바른 것으로 표시 할 수 있다면 감사하게 생각합니다 :). –