From dd2a6ada07e251f3b02036bf64ad8945ac813e8e Mon Sep 17 00:00:00 2001 From: Nguyen Duy Date: Tue, 5 Nov 2024 20:10:02 +0700 Subject: [PATCH] update display api as docs said --- app/Display.cs | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/app/Display.cs b/app/Display.cs index 70d3233..9fc7baf 100644 --- a/app/Display.cs +++ b/app/Display.cs @@ -154,9 +154,23 @@ namespace ParsecVDisplay if (Native.EnumDisplaySettings(DeviceName, -1, ref mode)) { - if (width.HasValue) mode.dmPelsWidth = width.Value; - if (height.HasValue) mode.dmPelsHeight = height.Value; - if (hz.HasValue) mode.dmDisplayFrequency = hz.Value; + if (width.HasValue) + { + mode.dmPelsWidth = width.Value; + mode.dmFields |= /*DM_PELSWIDTH*/ 0x80000; + } + + if (height.HasValue) + { + mode.dmPelsHeight = height.Value; + mode.dmFields |= /*DM_PELSHEIGHT*/ 0x100000; + } + + if (hz.HasValue) + { + mode.dmDisplayFrequency = hz.Value; + mode.dmFields |= /*DM_DISPLAYFREQUENCY*/ 0x400000; + } if (orientation.HasValue) { @@ -172,7 +186,7 @@ namespace ParsecVDisplay } return Native.ChangeDisplaySettingsEx(DeviceName, - ref mode, IntPtr.Zero, 1, IntPtr.Zero) == 0; + ref mode, IntPtr.Zero, /*CDS_UPDATEREGISTRY*/ 0x1 | /*CDS_GLOBAL*/ /*0x8*/ 0, IntPtr.Zero) == 0; } return false;