在我们开发windows程序时,使用一个System.Windows.Forms.Form对象,生成可执行文件运行它,拖动它会看见一个移动框,但是有一些其他的程序就没有,如:gtalk或者stream,它们是怎么制作出来的呀?请教一下大家

解决方案 »

  1.   

    gtalk是什么东西?拖动无边框的窗体,可以用改变Windows消息的方式来处理。是比较简单的方式了。
    protected override void WndProc(ref System.Windows.Forms.Message m)
    {
    int WM_NCHITTEST = 0x0084;
    int HTCAPTION = 2;
    int WM_NCLBUTTONDBLCLK = 0x00A3;
    if(m.Msg == WM_NCLBUTTONDBLCLK)
    {
    return;
    }
    else if(m.Msg == WM_NCHITTEST)
    {
    m.Result = (IntPtr)HTCAPTION;
    }
    else
    base.WndProc (ref m);
    }
    }
    这是重载Form的WndProc方法
      

  2.   

    MyLf(不睡觉的鱼):
    代码我试过了,但是我想要窗口中的图象随着我的移动也跟着移动
      

  3.   

    1.这样就不会出现边框
    Formborderstyle="None";
    2.你可以自己制作一些图片,然后在图片的事件中控制一下,来实现边框的功能。
      

  4.   

    我觉得用Gdi+在原来的位置画一个框。