Hi, let me start off by stressing that I am NOT talking about the VirtualBox display scaling feature. I am talking about the Windows (8.1) display scaling feature for high-DPI displays.
The problem here is that I have a high-DPI display as my primary screen, and a low-DPI display as my secondary screen. Windows 8.1 has a new feature which causes it to scale (zoom or shrink) windows so that they are the same size no matter which screen they're on. But this does not work well with VB. Specifically, Windows first virtually scales up the resolution of the secondary display to around 2500x1400, which is the value reported to the guest; and then it shrinks the VB window (by about 50%) when actually drawing it. The end result is that guests look awful. Blurry at best, illegible at worst.
Now you can override the display scaling feature. And that works great... for the VB manager window. It has absolutely no effect on the guest VM's window. But I cannot for the life of me figure out how to override the scaling feature for whatever process it is that the manager spawns when I launch a VM. Apparently it's just another VirtualBox.exe process; at least, that's what task manager says. But it's definitely not picking up the scaling settings at all.
Is there a way to work around this?
EDIT: I searched harder and found a thread saying basically that you have to disable per-display scaling. Which does work, although it's not optimal. I'd really prefer to disable the setting just for the VB guest window because that's the only place where it's wrong. If anyone has some ideas for how to make that work I'd love to give them a shot. FYI, although the other thread says to set the magnification to 200%, it doesn't appear to be necessary -- it works just fine for me at 150%, and I imagine it would also work at lower magnifications.