.NET怎么移动没有边框的窗体
求各位大神指导下,最好有个例子,要注意哪些   需要什么操作 最好也说一下
------解决方案--------------------重写窗体的WndProc
protected override void WndProc(ref Message m)
       {
           const int WM_NCHITTEST = 0x84;
           const int HTCLIENT = 0x01;
           const int HTCAPTION = 0x02;
           const int WM_SYSCOMMAND = 0x112;
           const int SC_MAXMIZE = 0xF030;
           const int WM_NCLBUTTONDBLCLK = 0xA3;
           switch (m.Msg)
           {
               case 0x4e:
               case 0xd:
               case 0xe:
               case 0x14:
                   base.WndProc(ref m);
                   break;
               case WM_NCHITTEST://鼠标点任意位置后可以拖动窗体                  
                   this.DefWndProc(ref m);
                   if (m.Result.ToInt32() == HTCLIENT)
                   {
                       m.Result = new IntPtr(HTCAPTION);//让系统以为点的是标题
                       return;
                   }
                   break;
               case WM_NCLBUTTONDBLCLK://禁止双击最大化               
                       return;                  
                   break;
               default:                  
                   base.WndProc(ref m);
                   break;
           }
       }
------解决方案--------------------[DllImport("User32.dll", CharSet=CharSet.Auto)]
		public static extern bool ReleaseCapture();
[DllImport("user32.dll", CharSet=CharSet.Auto)]
		static public extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);  
private static int WM_NCLBUTTONDOWN=0xA1;
private static int HTCAPTION = 2;
private void Form_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
		{
			ReleaseCapture();
			SendMessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
		}
------解决方案--------------------
把这个方法放在窗体的类中,然后运行看下效果
C# code
protected override void WndProc(ref Message m)
{
    if (m.Msg == 0x0201)
    {
        m.Msg = 0x00A1;
        m.WParam = (IntPtr)2;
    }
    base.WndProc(ref m);
}