Winform FormBorderStyle.None时,支持改变窗体大小

来源:互联网 发布:植物魔法x火红莲矩阵 编辑:程序博客网 时间:2024/05/28 06:07

没有边框了,没法拖动大小?


   //FormBorderStyle.None时,支持改变窗体大小       # region 支持改变窗体大小        private const int Guying_HTLEFT = 10;        private const int Guying_HTRIGHT = 11;        private const int Guying_HTTOP = 12;        private const int Guying_HTTOPLEFT = 13;        private const int Guying_HTTOPRIGHT = 14;        private const int Guying_HTBOTTOM = 15;        private const int Guying_HTBOTTOMLEFT = 0x10;        private const int Guying_HTBOTTOMRIGHT = 17;        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;                default:                    base.WndProc(ref m);                    break;            }        }        #endregion


阅读全文
0 0
原创粉丝点击