static Rectangle GetVisibleRectangle(WindowInfo wi, Screen s) { Rectangle resultWindowRect = new Rectangle( wi.rcWindow.left, wi.rcWindow.top, wi.rcWindow.right - wi.rcWindow.left, wi.rcWindow.bottom - wi.rcWindow.top ); WindowBorderOnScreenFlags flags = new WindowBorderOnScreenFlags(wi, s); if(!flags.leftBorderOnScreen) resultWindowRect.X = s.WorkingArea.X; else { resultWindowRect.X = !flags.rightBorderOnScreen ? s.WorkingArea.Right - wi.rcWindow.right + wi.rcWindow.left : wi.rcWindow.left; } if(!flags.topBorderOnScreen) resultWindowRect.Y = s.WorkingArea.Y; else { resultWindowRect.Y = !flags.bottomBorderOnScreen ? s.WorkingArea.Bottom - wi.rcWindow.bottom + wi.rcWindow.top : wi.rcWindow.top; } return resultWindowRect; }
static Rectangle GetVisibleRectangle(WindowInfo wi, Screen s) { Rectangle resultWindowRect = new Rectangle( wi.rcWindow.left, wi.rcWindow.top, wi.rcWindow.right - wi.rcWindow.left, wi.rcWindow.bottom - wi.rcWindow.top ); WindowBorderOnScreenFlags flags = new WindowBorderOnScreenFlags(wi, s); if (!flags.leftBorderOnScreen) { resultWindowRect.X = s.WorkingArea.X; } else { resultWindowRect.X = !flags.rightBorderOnScreen ? s.WorkingArea.Right - wi.rcWindow.right + wi.rcWindow.left : wi.rcWindow.left; } if (!flags.topBorderOnScreen) { resultWindowRect.Y = s.WorkingArea.Y; } else { resultWindowRect.Y = !flags.bottomBorderOnScreen ? s.WorkingArea.Bottom - wi.rcWindow.bottom + wi.rcWindow.top : wi.rcWindow.top; } return(resultWindowRect); }
static int GetWindowVisibleArea(WindowInfo wi, Screen s) { WindowBorderOnScreenFlags flags = new WindowBorderOnScreenFlags(wi, s); int visibleWidth = 0, visibleHeight = 0; if (flags.leftBorderOnScreen) { visibleWidth = flags.rightBorderOnScreen ? wi.rcWindow.right - wi.rcWindow.left : s.WorkingArea.Right - wi.rcWindow.left; } else if (flags.rightBorderOnScreen) { visibleWidth = wi.rcWindow.right - s.WorkingArea.Left; } if (flags.topBorderOnScreen) { visibleHeight = flags.bottomBorderOnScreen ? wi.rcWindow.bottom - wi.rcWindow.top : s.WorkingArea.Bottom - wi.rcWindow.top; } else if (flags.bottomBorderOnScreen) { visibleHeight = wi.rcWindow.bottom - s.WorkingArea.Top; } return(visibleWidth * visibleHeight); }
static int GetWindowVisibleArea(WindowInfo wi, Screen s) { WindowBorderOnScreenFlags flags = new WindowBorderOnScreenFlags(wi, s); int visibleWidth = 0, visibleHeight = 0; if(flags.leftBorderOnScreen) visibleWidth = flags.rightBorderOnScreen ? wi.rcWindow.right - wi.rcWindow.left : s.WorkingArea.Right - wi.rcWindow.left; else if(flags.rightBorderOnScreen) visibleWidth = wi.rcWindow.right - s.WorkingArea.Left; if(flags.topBorderOnScreen) visibleHeight = flags.bottomBorderOnScreen ? wi.rcWindow.bottom - wi.rcWindow.top : s.WorkingArea.Bottom - wi.rcWindow.top; else if(flags.bottomBorderOnScreen) visibleHeight = wi.rcWindow.bottom - s.WorkingArea.Top; return visibleWidth * visibleHeight; }