C# winForm 窗体设置了this.FormBorderStyle = FormBorderStyle.None; 后,怎么设置能修改窗体大小

并能够移动窗体。别告诉我改成Sizable哈....... 并能够移动窗体。别告诉我改成Sizable哈.... 展开
 我来答
jlyzlzb
推荐于2016-02-22 · TA获得超过163个赞
知道小有建树答主
回答量:158
采纳率:0%
帮助的人:89.1万
展开全部

 

 

 

        private const int WM_NCHITTEST = 0x84;

        private const int HTCLIENT = 0x1;

        private const int HTCAPTION = 0x2;

        [DllImport("user32.dll")]

        public static extern bool ReleaseCapture();

 

        public const int HWND_BROADCAST = 0xFFFF;

        public const int WM_FONTCHANGE = 0x1D;

        [DllImport("user32.dll")]

        public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);

        public static int WM_SYSCOMMAND = 0x0112;

        public static int SC_MOVE = 0xF010;

       

 

        /// <summary>

        /// 重写Windows 消息处理函数,用于不带标题的窗口移动

        /// </summary>

        /// <param name="m"></param>

        protected override void WndProc(ref Message m)

        {

            switch (m.Msg)

            {

 

                case WM_NCHITTEST:

                    base.WndProc(ref m);

                    if ((int)m.Result == HTCLIENT)

                        m.Result = (IntPtr)HTCAPTION;

                    return;

            }

            base.WndProc(ref m);

        }

 

        #region == 通过API来实现拖动鼠标改变窗口大小 ==

        protected override CreateParams CreateParams

        {

            get

            {

                CreateParams cp = base.CreateParams;

                cp.Style |= 0xC0000 + 0x20000;

                return cp;

            }

        }

 

        private void SelfMouseMove(object sender, MouseEventArgs e)

        {

            ReleaseCapture();

            SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);

        }

 

        /// <summary>

        /// 窗体的MouseMove事件处理函数

        /// </summary>

        /// <param name="sender"></param>

        /// <param name="e"></param>

        private void Form1_MouseMove(object sender, MouseEventArgs e)

        {

            SelfMouseMove(sender, e); // 调用 MouseMove函数

        }

 

        #endregion

 

追问

高手啊!膜拜~~~

能否把边框也去掉?或者把它改为黑色的

追答
这个要绘制窗口。不在此问题讨论范围之列。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式