Beispiel #1
0
        /// <summary>
        /// 将窗口移出屏幕可见区域
        /// </summary>
        /// <param name="hWnd">窗口句柄</param>
        public static void SetWindowOutOfScreen(IntPtr hWnd)
        {
            //0, 1040, 147, 858
            Win32Types.Rect winRect;
            Win32Funcs.GetWindowRectWrapper(hWnd, out winRect);

            //0, 1024, 0, 672,ClientToScreen之后坐标为8,178
            Win32Types.Rect clientRect;
            Win32Funcs.GetClientRectWrapper(hWnd, out clientRect);

            var offset = winRect.Width - clientRect.Width;
            var x      = -winRect.Width + offset + 1;
            var y      = winRect.Top;

            const uint flags = Win32Consts.SWP_NOZORDER;

            Win32Funcs.SetWindowPosWrapper(hWnd, IntPtr.Zero, x, y, winRect.Width, winRect.Height, flags);
        }