static public bool winSetPlacement(IntPtr _windowHandle, winPlacement _placement, double _visibilityThreshold) { if (_placement.showCmd == SW_NORMAL && GetRatioInScreen(_placement.rcNormalPosition) < _visibilityThreshold) { return(false); } try { winPlacement placement = new winPlacement(); placement.length = Marshal.SizeOf(placement); placement.flags = _placement.flags; placement.showCmd = _placement.showCmd; placement.ptMinPosition = _placement.ptMinPosition; placement.ptMaxPosition = _placement.ptMaxPosition; placement.rcNormalPosition = _placement.rcNormalPosition; placement.rcNormalPosition.Width = placement.rcNormalPosition.Width + placement.rcNormalPosition.Left; placement.rcNormalPosition.Height = placement.rcNormalPosition.Height + placement.rcNormalPosition.Top; SetWindowPlacement(_windowHandle, ref placement); } catch (System.Exception) { return(false); } return(true); }
static public winPlacement winGetPlacement(IntPtr _windowHandle) { winPlacement placement = new winPlacement(); placement.length = Marshal.SizeOf(placement); GetWindowPlacement(_windowHandle, ref placement); placement.rcNormalPosition.Width = placement.rcNormalPosition.Width - placement.rcNormalPosition.Left; placement.rcNormalPosition.Height = placement.rcNormalPosition.Height - placement.rcNormalPosition.Top; return(placement); }
static public windowPlacement getWindowPlacement(IntPtr _windowHandle) { winPlacement wp = winGetPlacement(_windowHandle); windowPlacement placement = new windowPlacement(); placement.left = wp.rcNormalPosition.Left; placement.top = wp.rcNormalPosition.Top; placement.width = wp.rcNormalPosition.Width; placement.height = wp.rcNormalPosition.Height; placement.maximized = wp.showCmd == SW_MAXIMIZE; placement.minimized = wp.showCmd == SW_MINIMIZE; return(placement); }
static public void winSetPlacement(IntPtr _windowHandle, winPlacement _placement) { winPlacement placement = new winPlacement(); placement.length = Marshal.SizeOf(placement); placement.flags = _placement.flags; placement.showCmd = _placement.showCmd; placement.ptMinPosition = _placement.ptMinPosition; placement.ptMaxPosition = _placement.ptMaxPosition; placement.rcNormalPosition = _placement.rcNormalPosition; placement.rcNormalPosition.Width = placement.rcNormalPosition.Width + placement.rcNormalPosition.Left; placement.rcNormalPosition.Height = placement.rcNormalPosition.Height + placement.rcNormalPosition.Top; SetWindowPlacement(_windowHandle, ref placement); }
static public bool winPlacementIsValid(winPlacement _placement) { return(_placement.length == Marshal.SizeOf(_placement)); }
static public void winPlacementSetInvalid(winPlacement _placement) { _placement.length = 0; }
static extern bool SetWindowPlacement(IntPtr hWnd, ref winPlacement lpwndpl);