首页 > 学院 > 开发设计 > 正文

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

2019-11-06 06:49:10
字体:
来源:转载
供稿:网友
        //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
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表