private void FullScreen(IntPtr targeHandler, int displayIndex = 0) { //var tmp = User32Wrapper.MonitorFromWindow(targeHandler, User32Wrapper.MONITOR_DEFAULTTONEAREST); //MONITORINFO info = new MONITORINFO(); //bool ok = User32Wrapper.GetMonitorInfo(tmp, info); //if (!ok) // return null; //ok = User32Wrapper.GetWindowRect(_targeHandler, out RECT react); //ok = User32Wrapper.SetWindowPos(targeHandler, info.rcMonitor); //return react; var displays = User32Wrapper.GetDisplays(); if (displays == null) { return; } var display = displays[displayIndex]; User32Wrapper.MapWindowPoints(IntPtr.Zero, _workerw, ref display.rcMonitor, 2); var ok = User32Wrapper.SetWindowPos(targeHandler, display.rcMonitor); return; }
private static void FullScreen(IntPtr targeHandler, Rectangle bounds, IntPtr workerw) { RECT rect = new RECT(bounds); User32Wrapper.MapWindowPoints(IntPtr.Zero, workerw, ref rect, 2); _ = User32WrapperEx.SetWindowPosEx(targeHandler, rect); }
private static void FullScreen(IntPtr targeHandler, Screen displayScreen) { RECT rect = new RECT(displayScreen.Bounds); User32Wrapper.MapWindowPoints(IntPtr.Zero, _workerw, ref rect, 2); var ok = User32WrapperEx.SetWindowPosEx(targeHandler, rect); return; }
public static void FullScreen(IntPtr targeHandler, RECT rect, IntPtr parent) { User32Wrapper.MapWindowPoints(IntPtr.Zero, parent, ref rect, 2); _ = User32WrapperEx.SetWindowPosEx(targeHandler, rect); var style = User32Wrapper.GetWindowLong(targeHandler, WindowLongFlags.GWL_STYLE); //https://stackoverflow.com/questions/2398746/removing-window-border //消除游戏边框 style &= ~(int)(WindowStyles.WS_EX_TOOLWINDOW | WindowStyles.WS_CAPTION | WindowStyles.WS_THICKFRAME | WindowStyles.WS_MINIMIZEBOX | WindowStyles.WS_MAXIMIZEBOX | WindowStyles.WS_SYSMENU); User32Wrapper.SetWindowLong(targeHandler, WindowLongFlags.GWL_STYLE, style); }