winForm 实现鼠标拖动标题栏不移动窗口 和 拖动用户区移动窗口
实现鼠标拖动标题栏不移动窗口
protected override void WndProc(ref System.Windows.Forms.Message m) { base.WndProc(ref m);//基类执行 if(m.Msg == 132)//鼠标的移动消息(包括非窗口的移动) { //基类执行后m有了返回值,鼠标在窗口的每个地方的返回值都不同 if((IntPtr)2 == m.Result)//如果返回值是2,则说明鼠标是在标题拦 { //将返回值改为1(窗口的客户区),这样系统就以为是 //在客户区拖动的鼠标,窗体就不会移动 m.Result = (IntPtr)1; } } } 拖动用户区移动窗口:
protected override void WndProc(ref System.Windows.Forms.Message m)
{
base.WndProc(ref m);
if (m.Msg == 132)
{
if ((IntPtr)1 == m.Result)
{
m.Result = (IntPtr)2;
}
}
}

浙公网安备 33010602011771号