/// <summary>
/// Get handle been hitted
/// </summary>
/// <param name="point">the point hitted</param>
/// <returns>the handle been hitted</returns>
public Hits HitTest(Point point)
{
if( rect.Contains(point) )
return Hits.Middle;
Rectangle[] rects = GetHandleRects();
for(Hits i = Hits.LeftTop; (int)i <= rects.Length; i++)
{
if( rects[(int)i - 1].Contains(point))
return i;
}
return Hits.Nothing;
}
/// <summary>
/// set the current cursor depend on handle been hitted
/// </summary>
/// <param name="form">the form track on</param>
/// <param name="hit">the handle been hitted</param>
public void SetCursor(Form form, Hits hit)
{
switch(hit)
{
case Hits.LeftTop:
case Hits.RightBottom:
form.Cursor = Cursors.SizeNWSE;
break;
case Hits.Top:
case Hits.Bottom:
form.Cursor = Cursors.SizeNS;
break;
case Hits.RightTop:
case Hits.LeftBottom:
form.Cursor = Cursors.SizeNESW;
break;
case Hits.Left:
case Hits.Right:
form.Cursor = Cursors.SizeWE;
break;
case Hits.Middle:
form.Cursor = Cursors.SizeAll;
break;
default:
form.Cursor = Cursors.Arrow;
break;
}