Skip to content

Commit 9d0a147

Browse files
authored
Merge pull request #99
ScreenScaling
2 parents ed01900 + b60d7de commit 9d0a147

File tree

2 files changed

+9
-14
lines changed

2 files changed

+9
-14
lines changed

GW Launcher/Forms/MainForm.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -292,8 +292,8 @@ private void NotifyIcon_MouseClick(object sender, MouseEventArgs e)
292292
_allowVisible = true;
293293
_keepOpen = e.Button == MouseButtons.Right && Visible == false;
294294

295-
//get Windows screen scale factor (system -> display -> scale):
296-
//to get real resolution from virtual one, we need to multiply with scale factor: virtual resolution * scale = native unscaled resolution
295+
// get Windows screen scale factor (system -> display -> scale):
296+
// to get real resolution from virtual one, we need to multiply with scale factor: virtual resolution * scale = native unscaled resolution
297297
float scale = ScreenScaling.GetScreenScalingFactor();
298298

299299
bool IsVisible(Point p)
Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,29 @@
1-
using System;
2-
using System.Collections.Generic;
3-
using System.Linq;
4-
using System.Text;
5-
using System.Threading.Tasks;
1+
namespace GW_Launcher.Utilities;
62

7-
namespace GW_Launcher.Utilities;
83
internal static class ScreenScaling
94
{
105
[DllImport("gdi32.dll")]
116
static extern int GetDeviceCaps(IntPtr hdc, int nIndex);
127

8+
// https://www.pinvoke.net/default.aspx/gdi32.getdevicecaps
139
private enum DeviceCap
1410
{
1511
VERTRES = 10,
16-
DESKTOPVERTRES = 117,
17-
//... http://pinvoke.net/default.aspx/gdi32/GetDeviceCaps.html
12+
DESKTOPVERTRES = 117
1813
}
1914

20-
//get screen scaling factor set under settings -> system -> screen: scaling (e.g. 225%)
15+
// get screen scaling factor set under settings -> system -> screen: scaling (e.g. 225%)
2116
public static float GetScreenScalingFactor()
2217
{
2318
using Graphics g = Graphics.FromHwnd(IntPtr.Zero);
2419
IntPtr desktop = g.GetHdc();
2520

26-
int logicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.VERTRES); //virtual screen resolution scaled down for DPI-unaware app
27-
int physicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.DESKTOPVERTRES); //actual screen resolution, e.g. 3840 x 2160
21+
var logicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.VERTRES); // virtual screen resolution scaled down for DPI-unaware app
22+
var physicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.DESKTOPVERTRES); // actual screen resolution, e.g. 3840 x 2160
2823

2924
g.ReleaseHdc(desktop);
3025

31-
float screenScalingFactor = physicalScreenHeight / (float) logicalScreenHeight;
26+
var screenScalingFactor = physicalScreenHeight / (float)logicalScreenHeight;
3227
return screenScalingFactor; // e.g. 1.25 = 125%
3328
}
3429
}

0 commit comments

Comments
 (0)