Это называется «призрачным окном». Что происходит, так это то, что процесс зависает или блокируется и, следовательно, не может ответить на сообщение рисования для обновления своего окна. Чтобы справиться с этой ситуацией, Windows вступает во владение и красит окно, пока программа не становится снова отзывчивой и рисует себя (или убита или падает).
В более старых версиях Windows замороженное окно было окрашено сплошным цветом фона, но в XP Windows делает снимок экрана, как оно было в последний раз, когда оно обновлялось, и использует его для рисования. Конечно, если части окна закрыты (как, например, если вы перетаскиваете его за пределы экрана), Windows может закрасить его только цветом фона (поэтому после перетаскивания его за пределы экрана во всех направлениях оно становится совершенно пустым).
Кроме того, когда вы перетаскиваете другие окна поверх него, они оставляют след, потому что замороженное окно не отвечает на сообщение рисования, когда часть его открыта.
В Vista+ Windows по-прежнему рисует призрачные окна, как в XP, но использует хитрость, чтобы заставить окно казаться в некоторой степени живым; Вы все еще можете перемещать и минимизировать его, не теряя последнее обновленное изображение или не получая эффект «Зал зеркал». Теперь он скрывает фактическое замороженное окно и заменяет его новым временным окном того же размера и формы, что и замороженное. Новое окно окрашено скриншотом замороженного окна, но с бледно-белым оттенком. Теперь, когда вы перетаскиваете другие окна поверх него, оно сохраняет исходное (призрачное) изображение, потому что оно на самом деле не заморожено; обрабатывает сообщение рисования, рисуя сохраненный скриншот.
Сотрудники Microsoft Раймонд Чен и Мэтт Исон хорошо это рассмотрели.
Конечно, Mac, Linux и т.д. Все обрабатывают рисование и управление окнами по-своему, поэтому по-разному реагируют на замороженные окна.