const int WM_NCHITTEST = 0x0084 ;
const int HTLEFT = 10 ;
const int HTRIGHT = 11 ;
const int HTTOP = 12 ;
const int HTTOPLEFT = 13 ;
const int HTTOPRIGHT = 14 ;
const int HTBOTTOM = 15 ;
const int HTBOTTOMLEFT = 0x10 ;
const int HTBOTTOMRIGHT = 17 ;
protected override void WndProc( ref Message m)
{
base . WndProc( ref m);
switch (m . Msg)
{
case WM_NCHITTEST:
Point vPoint = new Point (( int )m . LParam & 0xFFFF ,
( int )m . LParam >> 16 & 0xFFFF );
vPoint = PointToClient(vPoint);
if (vPoint . X <= 5 )
if (vPoint . Y <= 5 )
m . Result = ( IntPtr )HTTOPLEFT;
else if (vPoint . Y >= ClientSize . Height - 5 )
m . Result = ( IntPtr )HTBOTTOMLEFT;
else m . Result = ( IntPtr )HTLEFT;
else if (vPoint . X >= ClientSize . Width - 5 )
if (vPoint . Y <= 5 )
m . Result = ( IntPtr )HTTOPRIGHT;
else if (vPoint . Y >= ClientSize . Height - 5 )
m . Result = ( IntPtr )HTBOTTOMRIGHT;
else m . Result = ( IntPtr )HTRIGHT;
else if (vPoint . Y <= 5 )
m . Result = ( IntPtr )HTTOP;
else if (vPoint . Y >= ClientSize . Height - 5 )
m . Result = ( IntPtr )HTBOTTOM;
break ;
}
}