Насколько легко в DWM создать миниатюру «всегда сверху» для существующего окна? - PullRequest
1 голос
/ 15 февраля 2009

Мне очень нравится, когда вы наводите курсор на окно в Vista на панели задач, и оно дает вам небольшой предварительный просмотр. если это видео, оно даже воспроизводится на миниатюре.

Часто мне бы очень хотелось, чтобы я «оторвал» это маленькое окно и сохранил его на экране как миниатюру «всегда сверху». Может быть, это индикатор выполнения, который я смотрю, а может быть, это видео, которое я хочу немного превью.

Разве это не та вещь, которую DWM облегчает программирование? Будет ли это простой попыткой программировать на хорошо управляемом C # - или я в конечном итоге увязну в хитрых API-вещах?

Меня интересуют как существующие решения, так и советы о том, как кодировать что-то вроде этого.

Ответы [ 3 ]

3 голосов
/ 12 августа 2009

Извините за саморекламу здесь. :) Просто упомяну, что уже есть приложение, которое позволяет вам клонировать каждое окно верхнего уровня и сохранять их предварительный просмотр «всегда сверху»: OnTopReplica .

Программа основана на библиотеке Windows Forms Aero , библиотеке .NET (c #), которая включает некоторые оболочки DWM. Никаких хитрых API-функций не требуется (кроме того, API в любом случае довольно прост).

1 голос
/ 12 мая 2009

Очень хороший предварительный просмотр того, как использовать это в C #:

http://community.bartdesmet.net/blogs/bart/archive/2006/10/05/4495.aspx

1 голос
/ 15 февраля 2009

Да, вы можете создавать свои собственные миниатюры, похожие на панели задач. Вы должны будете сделать довольно много манипуляций с ручкой окна. Как это работает, в основном вы создаете в форме дочернее окно, которое будет миниатюрой. Вы обращаетесь к дескриптору окна верхнего уровня, который вы хотите превратить в обычные трюки. Затем вы вызываете функцию DWM DWMRegisterThumbnail, чтобы связать их. На самом деле вы вообще не участвуете в рисовании миниатюры - после того, как окна связаны, процесс создания DWM заботится о рисовании миниатюры окна верхнего уровня в вашей форме.

Документация MSDN

...