Quanto facile è a DWM per fare una miniatura 'sempre in primo piano' per una finestra esistente
-
23-08-2019 - |
Domanda
Mi piace molto quando si passa sopra una finestra in Vista sulla barra delle applicazioni e ti dà una piccola anteprima. se è il video che svolge anche nella miniatura.
Spesso ho davvero voluto poter 'strappare' questa piccola finestra e lo mantiene come 'sempre in primo piano' delle miniature sul mio schermo. Forse è una barra di avanzamento che sto guardando, forse è un video che voglio un po 'piccola anteprima di.
Non è questo il genere di cosa che DWM rende facile da programmare. Questo sarebbe un semplice tentativo di programmare in C # bella gestito -? O dovrei finire per ottenere tutti impantanati nel roba API difficile
Sono interessato a entrambe le soluzioni esistenti e le indicazioni su come codificare qualcosa di simile.
Soluzione
Una buona anteprima di come utilizzare questo in C #:
http://community.bartdesmet.net /blogs/bart/archive/2006/10/05/4495.aspx
Altri suggerimenti
Ci scusiamo per l'auto-promozione qui. :) Basta menzionare c'è già un app che permette di clonare ogni finestra di primo livello e mantenere la loro anteprima "sempre in primo piano": OnTopReplica .
Il programma si basa sul Windows Form biblioteca Aero , un .NET (c #) libreria che comprende alcuni involucri DWM. Nulla di complicato API necessarie (oltre, l'API è piuttosto semplice in ogni caso).
Sì, è possibile creare le miniature della barra delle applicazioni-like. Si sta andando ad avere a che fare un po 'di finestra manipolazione manico però. Come funziona è fondamentalmente di creare un bambino-finestra nel modulo che sarà la miniatura. È obtian l'handle di finestra della finestra di primo livello che si desidera una miniatura di utilizzare i soliti trucchi. Poi si chiama una funzione di DWM DWMRegisterThumbnail ad associare i due. In realtà non coinvolto nel dipingere la miniatura a tutti - una volta che le finestre sono associati, il processo di compositing DWM si prende cura di dipingere una miniatura della finestra di primo livello nel modulo.