Search code examples
c++windowsapibitbltmagnification

Blitting the contents of Windows magnifier


My Windows program copies the contents of windows using GetDC then BitBlt. This works fine for most windows, but with magnifier windows I get a blank screen. This happens whether it's a magnifier I create myself with the Magnification API or the built in Windows 7 magnifier.

Is this behavior by design, and is there a workaround?


Solution

  • Yes, this is by design; magnifier windows don't draw the client area themselves; instead, they use DWM to copy/magnify some other area. There's no public workaround; the bits are effectively being managed on the video card itself, and there's no backchannel available.