天天看点

Winform this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 无边框 允许拖动

1.定义变量(代码):      

      const int HTLEFT = 10;

        const int HTRIGHT = 11;

        const int HTTOP = 12;

        const int HTTOPLEFT = 13;

        const int HTTOPRIGHT = 14;

        const int HTBOTTOM = 15;

        const int HTBOTTOMLEFT = 0x10;

        const int HTBOTTOMRIGHT = 17;

2.重绘界面 

protected override void WndProc(ref Message m)

        {

            switch (m.Msg)

            {

                case 0x0084:

                    base.WndProc(ref m);

                    Point vPoint = new Point((int)m.LParam & 0xFFFF,

                        (int)m.LParam >> 16 & 0xFFFF);

                    vPoint = PointToClient(vPoint);

                    if (vPoint.X <= 5)

                        if (vPoint.Y <= 5)

                            m.Result = (IntPtr)Guying_HTTOPLEFT;

                        else if (vPoint.Y >= ClientSize.Height - 5)

                            m.Result = (IntPtr)Guying_HTBOTTOMLEFT;

                        else m.Result = (IntPtr)Guying_HTLEFT;

                    else if (vPoint.X >= ClientSize.Width - 5)

                        if (vPoint.Y <= 5)

                            m.Result = (IntPtr)Guying_HTTOPRIGHT;

                        else if (vPoint.Y >= ClientSize.Height - 5)

                            m.Result = (IntPtr)Guying_HTBOTTOMRIGHT;

                        else m.Result = (IntPtr)Guying_HTRIGHT;

                    else if (vPoint.Y <= 5)

                        m.Result = (IntPtr)Guying_HTTOP;

                    else if (vPoint.Y >= ClientSize.Height - 5)

                        m.Result = (IntPtr)Guying_HTBOTTOM;

                    break;

                case 0x0201: //鼠标左键按下的消息

                    m.Msg = 0x00A1; //更改消息为非客户区按下鼠标

                    m.LParam = IntPtr.Zero; //默认值

                    m.WParam = new IntPtr(2); //鼠标放在标题栏内

                    base.WndProc(ref m);

                    break;

                case 0x0053:

                    Common.Showhelp();

                    base.WndProc(ref m);

                    break;

                default:

                    base.WndProc(ref m);

                    break;

            }

        }