示例#1
0
        protected override void OnMouseMove(MouseEventArgs e)
        {
            base.OnMouseMove(e);

            if (DesignMode)
            {
                return;
            }

            if (K_ResizeAble)
            {
                bool isChildUnderMouse = GetChildAtPoint(e.Location) != null;

                if (e.Location.X < BORDER_WIDTH && e.Location.Y > Height - BORDER_WIDTH && !isChildUnderMouse && !_formIsMaximized)
                {
                    _resizeDir = KResizeDirection.BottomLeft;
                    Cursor     = Cursors.SizeNESW;
                }
                else if (e.Location.X < BORDER_WIDTH && !isChildUnderMouse && !_formIsMaximized)
                {
                    _resizeDir = KResizeDirection.Left;
                    Cursor     = Cursors.SizeWE;
                }
                else if (e.Location.X > Width - BORDER_WIDTH && e.Location.Y > Height - BORDER_WIDTH && !isChildUnderMouse && !_formIsMaximized)
                {
                    _resizeDir = KResizeDirection.BottomRight;
                    Cursor     = Cursors.SizeNWSE;
                }
                else if (e.Location.X > Width - BORDER_WIDTH && !isChildUnderMouse && !_formIsMaximized)
                {
                    _resizeDir = KResizeDirection.Right;
                    Cursor     = Cursors.SizeWE;
                }
                else if (e.Location.Y > Height - BORDER_WIDTH && !isChildUnderMouse && !_formIsMaximized)
                {
                    _resizeDir = KResizeDirection.Bottom;
                    Cursor     = Cursors.SizeNS;
                }
                else
                {
                    _resizeDir = KResizeDirection.None;

                    if (_resizeCursors.Contains(Cursor))
                    {
                        Cursor = Cursors.Default;
                    }
                }
            }

            UpdateButtons(e);
        }
示例#2
0
        /// <summary>
        /// 改变窗体的大小:拖动边框改变
        /// </summary>
        /// <param name="direction">改变的方向</param>
        private void ResizeForm(KResizeDirection direction)
        {
            if (DesignMode)
            {
                return;
            }
            int dir = -1;

            switch (direction)
            {
            case KResizeDirection.BottomLeft:
                dir = HT_BOTTOMLEFT;
                break;

            case KResizeDirection.Left:
                dir = HT_LEFT;
                break;

            case KResizeDirection.Right:
                dir = HT_RIGHT;
                break;

            case KResizeDirection.BottomRight:
                dir = HT_BOTTOMRIGHT;
                break;

            case KResizeDirection.Bottom:
                dir = HT_BOTTOM;
                break;
            }

            ReleaseCapture();

            if (dir != -1)
            {
                SendMessage(Handle, WM_NCLBUTTONDOWN, dir, 0);
            }
        }