在WinProc里面,如果消息为WM_MOVE(0xF010)直接返回,不调用BASE.Winproc就行了.

解决方案 »

  1.   

    把FormBorderStyle 设置为 None
      

  2.   

    WM_MOVE的代码是0x0003吧?截获了这个代码怎么屏蔽掉它呢?直接返回用return;好像不行啊。
      

  3.   

    override void WinProc()
      

  4.   

    是的啊,截获到了WM_MOVE这个消息以后怎么做呢?
    if (m.Msg == 0x0003) ...
      

  5.   

    protected override void WndProc(ref System.Windows.Forms.Message m) 

    if(m.Msg != 0x0112 && m.WParam != (IntPtr)0xF012)
    {
    base.WndProc(ref m);
    }

    }
      

  6.   

    把FormBorderStyle 设置为 None是可以解决,但是窗体式样就不一样了,还是用上面的好
      

  7.   

    冲写WndProc这个方法  判断WM_MOVE消息!
      

  8.   

    protected override void WndProc(ref System.Windows.Forms.Message m) 

    if(m.Msg != 0x0112 && m.WParam != (IntPtr)0xF012)
    {
    base.WndProc(ref m);
    }

    }
    窗体不但不能移动,连最小化最大话关闭也不能了。
    只能另外写代码关闭哦
      

  9.   

    这样写的话,就可以禁止窗口移动了,但是我不太明白啊,有谁能给我解释一下。if(m.Msg != 0x0003 && m.WParam != (IntPtr)0xF012)
    {
    base.WndProc(ref m);
    }
      

  10.   

    进行继承的控件应调用基类的 WndProc 方法以处理它们不处理的任何消息。