public WindowsMonitor(DisplayDevice device) { Name = device.DeviceName; _modes = new List<IMonitorMode>(); var mode = new DeviceMode(); var num = -1; while (User32.EnumDisplaySettings(device.DeviceName, num++, ref mode) !=0) { _modes.Add(new MonitorMode( mode.PelsWidth, mode.PelsHeight,mode.BitsPerPel,mode.DisplayFrequency)); } }
public bool SetMode(IMonitorMode mode) { throw new NotImplementedException(); var dm = new DeviceMode() { PelsWidth = mode.Width, PelsHeight = mode.Height, BitsPerPel = mode.BitsPerPixel, DisplayFrequency = mode.Frequency, Fields = DM.PelsWidth | DM.PelsHeight | DM.BitsPerPixel | DM.DisplayFrequency }; return User32.ChangeDisplaySettingsEx(Name, dm, IntPtr.Zero, ChangeDisplaySettingsEnum.Fullscreen, IntPtr.Zero) == 0; }
public void SetFullscreen() { var exStyle = ExtendedWindowStyle.ApplicationWindow; var style = WindowStyle.Popup; var dm = new DeviceMode { Size = DeviceMode.SizeInBytes, Position = WinPoint.FromPoint(_monitor.Position), PelsWidth = Width, PelsHeight = Height, BitsPerPel = Bits, Fields = DM.PelsHeight | DM.PelsWidth | DM.BitsPerPixel }; User32.ChangeDisplaySettingsEx(_monitor.Name, dm, IntPtr.Zero, ChangeDisplaySettingsEnum.Fullscreen, IntPtr.Zero); User32.ShowWindow(_handle, ShowWindowCommand.Show); User32.SetForegroundWindow(_handle); User32.SetFocus(_handle); // User32.ChangeDisplaySettings(dm, ChangeDisplaySettingsEnum.Fullscreen); //var rect = new Win32Rectangle { Left = 0, Right = Width, Top = 0, Bottom = Bits }; //User32.AdjustWindowRectEx(ref rect, style, false, exStyle); }
public static extern bool EnumDisplaySettingsEx(string deviceName, int iModeNum, ref DeviceMode lpDevMode, int dwFlags);
public static extern int EnumDisplaySettings(string deviceName, int iModeNum, ref DeviceMode lpDevMode);
public static extern int ChangeDisplaySettingsEx(string deviceName, DeviceMode deviceMode, IntPtr handle, ChangeDisplaySettingsEnum dwflags, IntPtr lParam);
public static extern long ChangeDisplaySettings(DeviceMode lpDevMode, ChangeDisplaySettingsEnum dwflags);