Microsoft has now detailed some of the improvements it is making to high DPI support in the Windows 10 Creators Update.
As you may know, this islong-runninging battle between the past—non-scalable Win32 applications—and the Universal Windows Platform (UWP) future. And it appears that the past is winning, at least so far. As I opined in October, it’s not clear to me that Microsoft will ever really fix these issues.
Sign up for our new free newsletter to get three time-saving tips each Friday — and get free copies of Paul Thurrott's Windows 11 and Windows 10 Field Guides (normally $9.99) as a special welcome gift!
"*" indicates required fields
But give them some credit for trying. In the previous major version of Windows 10, which arrived with the Anniversary Update, Microsoft introduced mixed-mode DPI scaling and some new high-DPI-related APIs to help ease the pain. And it making further headway with some more—but not all—high DPI issues with the Creators Update.
I find myself most curious about what Microsoft is not fixing in this release. And it is being transparent about this, noting that the following high DPI issues remain even after the Creators Update is installed:
“Magic numbers. Many classic desktop applications are still written to assume 96 dpi, so they look blurry on high DPI displays. But parts of Windows still do this too, including button borders and the menu bar padding in certain applications (like Notepad). So Microsoft says it will “scrub” Windows 10 to eliminate these legacy issues in a future release.
Child windows. The mixed-mode DPI scaling work done in the previous update only impacts top-level app windows, and not child windows.
MFC. The per-monitor DPI scaling work impacts applications written to Win32, WPF, and WinForms, but not the Microsoft Foundation Classes (MFC) for C++.
Window dragging. When you drag a windows between two monitors with different DPIs, the window looks oddly shaped, with one rendered in the wrong DPI. Microsoft is looking to make this transition smoother.
Log out, log-in. While Windows 10 actually does a much better job than previous Windows versions in switching to new DPI settings on the fly, you still need to log out and then log back in to see all the changes correctly. Microsoft knows this is “a huge pain-point,” but it does “not currently have a solution for this.”
So that’s a long list, and helps bolster my contention that the only real “fix” for this stuff is the passage of time and the full removal of support for legacy Win32 applications from Windows. But here’s what was fixed in the Creators Update:
Per-app DPI scaling override. Now, assuming you can find the property sheet for an application’s EXE file, you can override the system DPI scaling behavior and configure the scaling behavior yourself. This should help fix some random errant applications that still don’t scale properly.
Desktop icons. Previously, desktop icons did not scale correctly on two or more displays with different DPI if you were running in the “Extend” display mode. That’s been fixed.
Internet Explorer. Microsoft’s mostly-forgotten legacy web browser was actually updated to better support high DPI and now displays more closely to Microsoft Edge.
Developer improvements. Microsoft has added a number of low-level features to Windows 10 to help developers improve their support of high DPI displays. And it is working to improve the documentation about this functionality, it says.
skane2600
<blockquote><em><a href="#95518">In reply to Athena Azuraea:</a></em></blockquote><p>I suspect that the percentage of devs who roll their own controls is relatively small.</p>
skane2600
<p>I guess I don't see the point of buying laptops with small screens and high DPI just so I can scale it up to usability. </p>
skane2600
<blockquote><em><a href="#95516">In reply to glenn8878:</a></em></blockquote><p>At a meta-level, scaling is a cross-formfactor problem that goes beyond making things bigger or smaller. You want your app's display to be optimized to the size screen in use. Sometimes that means that a different control is used on big screens than on small ones. This isn't a problem that can be solved generically by an OS, it requires careful design by the developer.</p>