如何移动无标题栏窗体,用鼠标事件, 用窗体上的控件拖拽

class Form{
    private const int WM_NCHITTEST = 0x0084;
    private const int HTCAPTION = 0x0002;
    protected override void WndProc(ref Message m) {
 switch (m.Msg) {
     case WM_NCHITTEST:
  m.Result = (IntPtr) HTCAPTION;
  break;
     default:
  base.WndProc (ref m);
  break;
 }
    }
}

以上的代码是可以在form的客户区用鼠标移动窗体。

以下代码窗体上有个label 控件,拖拽 label 就能移动窗体

[System.Runtime.InteropServices.DllImport("user32.dll",EntryPoint="SendMessage")]
  public static extern int SendMessage(int hWnd,int wMsg,int wParam,int lParam);
  [System.Runtime.InteropServices.DllImport("user32.dll",EntryPoint="ReleaseCapture")]
  public static extern int ReleaseCapture();
  public const int WM_SysCommand = 0x0112;
  public const int SC_MOVE = 0xF012;

  private void label1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
  {
   ReleaseCapture();
   SendMessage(this.Handle.ToInt32(),WM_SysCommand,SC_MOVE,0);
  }

转载于:https://www.cnblogs.com/sherrys/archive/2006/11/01/546409.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值