If you’ve splashed out for a modern, higher-end laptop in recent months the chances are you now own one with a glorious 4K screen.
Having a 4K screen opens up a whole new world of extreme clarity and superb visual depth. Providing the GPU within your laptop/desktop can handle it, gaming takes on a new perspective with ultra-high resolution graphics and spectacular detail. Windows 10 especially likes 4K screens, and is designed to make the maximum visual experience with the resolutions available. However, with Microsoft’s new OS design and very high DPI screens comes an extraordinarily annoying issue.
Windows, from 8.1 onward, used DPI Scaling to make everything on the screen become larger when being viewed in the higher 4K resolutions; that way you don’t have to use a magnifying glass to see any of the icons or read any text. In theory, every application that’s run on a Windows 10 PC with a 4K resolution should automatically use the auto DPI Scaling. But they don’t.
There are a lot of programs that were written before high DPI and 4K screens were commonplace, and as such they haven’t been updated to support or make use of the auto DPI Scaling feature in Windows 10. When you run an app that doesn’t support DPI Scaling you’ll get a severely messed up window, with the icons far too small to read, the text either far too large for the menus, or vice versa, and the window placements, if the app in question uses multiple windows for tools and so on, not in the correct order or encroaching the top toolbar, for example.
Turning off DPI Scaling, or altering the resolution doesn’t do anything to help, and to further compound the problem a program can effectively declare it’s using the DPI Scaling correctly, when in actual fact it isn’t. But there is a way to fix the issue by forcing Windows to scale the program correctly regardless of whether Windows or the program thinks it already has; as you can see from our first screenshot here.
For this particular example, we’re using the developer program, Code::Blocks, which messes up the DPI Scaling whenever you try and run it using a 4K screen.
Step 1 – Open up the registry edit, Regedit, and navigate to:
HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Windows > CurrentVersion > SideBySide
In the SideBySide entry, create a new DWORD (32-bit value) called:
With the Data Value as 1. Exit Regedit.
Step 2 – Create a new text file via Notepad, and enter the following script:
<?xml version=”1.0″ encoding=”UTF-8″ standalone=”yes”?>
<assembly xmlns=”urn:schemas-microsoft-com:asm.v1″ manifestVersion=”1.0″ xmlns:asmv3=”urn:schemas-microsoft-com:asm.v3″>
Now save the script as the name of the program executable plus the EXE extension plus Manifest. So for our example of Code::Blocks, the new file would be named:
Make sure that the Save as type dropdown menu in Notepad is set to ‘All Files’.
Step 4 – Copy the newly created file into the same folder as the actual program executable. Again, as in our example, that would be C:\Program files (x86)\Codeblocks. You’ll probably need to confirm as an administrator that the copy to the Program Files directory is okay.
Step 5 – Once the file is copied over, you should be able to load up the program without the auto DPI Scaling messing up the program’s interface. If it doesn’t work straight away, reboot the PC and try again.
No more DPI issues
With luck your auto DPI Scaling issues will now be fixed. All you’ll need to do is save the original .manifest file as the program that’s misbehaving on your 4K screen name.
Just in case Microsoft removes the registry setting with any future updates, it’s probably also worth saving the registry string so you can easily pop it back in.