Vista представила настольную композицию .Короче говоря, все окна рисуются в растровые изображения памяти, и затем диспетчер окон рабочего стола создает эти растровые изображения и рисует на полноэкранной поверхности Direct3D.Полноэкранные окна не участвуют в композиции рабочего стола и рисуют прямо на экране (в основном потому, что большинство полноэкранных приложений - это игры, которые требуют обновления экрана в реальном времени).
В частности, этоозначает, что когда полноэкранное приложение запущено и работает, оно покрывает составное изображение DWM, и пользователю необходимо переключиться в окно, управляемое DWM, чтобы DWM начал рисовать поверх полноэкранного приложения.
К сожалению, у меня нет хорошего решения вашей проблемы.Один из способов решить эту проблему - добавить стиль WS_CAPTION в ваше приложение, а затем обработать WM_NCPAINT
/ WM_NCCALCSIZE
/ WM_NCHITTEST
самостоятельно.Это позволит вам соврать DWM, что вы обычное оконное приложение, но визуально измените область NC, чтобы выглядеть так, будто у вас нет заголовка.Тем не менее, это требует определенного количества дополнительного кода и может потребовать немного больше усилий, которые вы хотите инвестировать.
Еще один способ решения проблемы - это явное сведение к минимуму окна полноэкранного приложения при запускеновый процесс.Однако тогда вам придется решить проблему, когда снова максимизировать его.
Кстати, вы можете найти комментарии к этому посту от Раймонда Чена интересными.