C# Winform无边框移动窗体

鼠标点击某个控件时的移动

        #region 鼠标拖动

        [DllImport("user32.dll")]
        public static extern bool ReleaseCapture();
        [DllImport("user32.dll")]
        public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
        public const int WM_SYSCOMMAND = 0x0112;
        public const int SC_MOVE = 0xF010;
        public const int HTCAPTION = 0x0002;

        private void panel1_MouseDown(object sender, MouseEventArgs e)
        {
            ReleaseCapture();
            SendMessage(this.Handle, WM_SYSCOMMAND, SC_MOVE + HTCAPTION, 0);
        }
        #endregion

未指定控件

     #region 移动窗体 
        [DllImport("user32.dll")]
        public static extern bool Rese();
        protected override void WndProc(ref Message m)
        {
            switch (m.Msg)
            {
                case 0x84:
                    base.WndProc(ref m);
                    if (m.Result == (IntPtr)0x1)
                    {
                        m.Result = (IntPtr)2;
                        return;
                    }
                    break;
            }
            base.WndProc(ref m);
        }
        #endregion

  

posted @ 2021-03-10 20:22  山上一边边  阅读(86)  评论(0编辑  收藏  举报