у нас проблема с функцией PrintWindow в Windows 10 (сборка 10166). Когда мы вызываем PrintWindow (https://msdn.microsoft.com/ru-ru/library/windows/desktop/dd162869(v=vs.85).aspx) для захвата изображения окна браузера Microsoft Edge (Project Spartan) получаем черный изображение.
Кто-нибудь знает причину этого и как это можно исправить/избежать? Или, может быть, какой-то другой способ захватить изображение окна, которое может быть в фоновом режиме и скрыто за другими окнами?
ОБНОВЛЕНИЕ: мы пробовали отправлять сообщения WM_PRINTCLIENT и WM_PRINT и вызывать DefWindowProc с помощью WM_PRINT, но результат тот же — просто черное изображение. Мы также пытались использовать BitBlt для копирования контроллера домена окна на поверхность памяти, но это тоже не работает. Лучшее решение, которое у нас есть сейчас, — вывести окно браузера на передний план, захватить весь экран и обрезать снимок экрана до размера окна клиента; но это может прерывать и раздражать пользователей из-за переключения приложений, которые используются в данный момент.
WM_PRINTCLIENT
должно поддерживаться рассматриваемым окном (несмотря на слухи об обратном, Windows не вмешивается и не выполняетWM_PAINT
растровое изображение памяти в крайнем случае) - person Jonathan Potter   schedule 14.07.2015