天天看點

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;

            }

        }

繼續閱讀