當FormBorderStyle設為None,如何移動Winform窗口

      首先﹐定義鼠標左鍵按下時的Message標識﹔其次﹐在Form1_MouseDown方法﹐讓操作系統誤以為是按下標題欄。

1.定義鼠標左鍵按下時的Message標識
  private const int WM_NCLBUTTONDOWN = 0XA1;  //定義鼠標左鍵按下
  private const int HTCAPTION     = 2;


2.讓操作系統誤以為是按下標題欄

private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
  {   
   //為當前的應用程序釋放鼠標鋪獲
   ReleaseCapture();
   //發送消息﹐讓系統誤以為在標題欄上按下鼠標
   SendMessage((int)this.Handle,WM_NCLBUTTONDOWN,HTCAPTION,0);
  }

3.申明程序中所Windows的API函數
  [DllImport("user32.dll",EntryPoint="SendMessageA")]
  private static extern int SendMessage(int hwnd,int wMsg,int wParam,int lParam);

  [DllImport("user32.dll")]
  private static extern int ReleaseCapture();

posted on 2007-07-31 16:35  squll201  阅读(621)  评论(0)    收藏  举报

导航