Я пытаюсь сделать скриншот окна. Я проверяю, что я получаю окно переднего плана с помощью GetForegroundWindow (), поэтому теоретически ничто не должно быть нарисовано поверх окна.
Затем я вызываю GetDC (GetDesktop ()) и копирую область экрана, которую мое окно занимает, в растровое изображение.
Если я вместо этого вызываю GetDC (myWindowHandle), я не получаю строку заголовка или границы (или я что-то здесь упускаю?)
Моя проблема в том, что теперь я правильно получаю все меню, которые открывает мое приложение, но я также получаю всплывающие окна (IM-клиент и Tweetdeck), которые рисуются поверх моего приложения.
Я нашел функцию AnyPopup (), которая возвращает true, когда есть всплывающее окно, но говорит, что это для обратной совместимости с 16-битными версиями окон и, как правило, бесполезна. Есть ли простой способ обнаружения всплывающих окон (и их расположения), или мне нужно циклически проходить через все окна и перечислять все их дочерние окна по очереди, чтобы проверить, находятся ли они поверх моего окна переднего плана?