Informazioni sui controlli animazione
Un controllo animazione è una finestra che visualizza un clip Audio-Video Interleaved (AVI). Una clip AVI è una serie di fotogrammi bitmap come un filmato. I controlli animazione possono visualizzare solo clip AVI che non contengono audio.
Un uso comune per un controllo di animazione consiste nell'indicare l'attività di sistema durante un'operazione lunga. Ciò è possibile perché il thread dell'operazione continua l'esecuzione mentre viene visualizzata la clip AVI. Ad esempio, la finestra di dialogo Trova di Esplora risorse visualizza una lente di ingrandimento mobile mentre il sistema cerca un file.
Nota
Se si usa ComCtl32.dll versione 6 il thread non è supportato; assicurarsi che l'applicazione non blocchi l'interfaccia utente. In caso contrario, l'animazione non verrà eseguita.
Un controllo di animazione può visualizzare una clip AVI proveniente da un file AVI non compresso o da un file AVI compresso usando la codifica run-length (BI_RLE8). È possibile aggiungere il clip AVI all'applicazione come risorsa AVI oppure il clip può accompagnare l'applicazione come file AVI separato.
Nota
Il file AVI o la risorsa non deve avere un canale audio. Le funzionalità del controllo animazione sono molto limitate e sono soggette a modifiche. Se è necessario un controllo per fornire funzionalità di riproduzione multimediale e registrazione per l'applicazione, è possibile usare il controllo MCIWnd. Per altre informazioni, vedere Classe finestra MCIWnd.
In questa sezione vengono illustrati gli argomenti seguenti.
- Creazione del controllo animazione
- Informazioni sui messaggi di controllo animazione
- Elaborazione dei messaggi predefinita
Creazione del controllo animazione
Un controllo di animazione appartiene alla classe finestra ANIMATE_CLASS. Per creare un controllo di animazione, usare la funzione CreateWindow o CreateWindowEx o la macro Animate_Create. La macro posiziona il controllo animazione nell'angolo superiore sinistro della finestra padre e, se lo stile ACS_CENTER non è specificato, imposta la larghezza e l'altezza del controllo in base alle dimensioni di un fotogramma nella clip AVI. Se si specifica ACS_CENTER , Animate_Create imposta la larghezza e l'altezza del controllo su zero. È possibile usare la funzione SetWindowPos per impostare la posizione e le dimensioni del controllo.
Se si crea un controllo animazione all'interno di una finestra di dialogo o da una risorsa della finestra di dialogo, il controllo viene eliminato automaticamente quando l'utente chiude la finestra di dialogo. Se crei un controllo animazione all'interno di una finestra, devi eliminare esplicitamente il controllo.
Informazioni sui messaggi di controllo animazione
Un'applicazione invia messaggi a un controllo di animazione per aprire, riprodurre, arrestare e chiudere il clip AVI corrispondente. Ogni messaggio include una o più macro che è possibile usare invece di inviare il messaggio in modo esplicito.
Dopo aver creato un controllo di animazione, un'applicazione invia il messaggio ACM_OPEN per aprire un clip AVI e caricarlo in memoria. Il messaggio specifica il percorso di un file AVI o il nome di una risorsa AVI. Il sistema carica la risorsa AVI dal modulo che ha creato il controllo animazione.
Se il controllo animazione ha lo stile ACS_AUTOPLAY , il controllo inizia a riprodurre la clip AVI immediatamente dopo l'apertura del file AVI o della risorsa AVI. In caso contrario, un'applicazione può usare il messaggio ACM_PLAY per avviare la clip AVI. Un'applicazione può arrestare la clip in qualsiasi momento inviando il messaggio di ACM_STOP . L'ultimo fotogramma riprodotto rimane visualizzato quando il controllo termina la riproduzione del clip AVI o quando viene inviato ACM_STOP .
Un controllo di animazione può inviare due codici di notifica alla finestra padre: ACN_START e ACN_STOP. La maggior parte delle applicazioni non gestisce alcuna notifica.
Per chiudere il file AVI o la risorsa AVI e rimuoverla dalla memoria, un'applicazione può usare la macro Animate_Close, che invia ACM_OPEN con il nome file o il nome della risorsa impostato su NULL.
Elaborazione dei messaggi predefinita
In questa sezione vengono descritti i messaggi della finestra gestiti dalla routine della finestra per la classe finestra ANIMATE_CLASS .
Message | Elaborazione eseguita |
---|---|
WM_CLOedizione Standard | Libera il file AVI o la risorsa AVI associata al controllo animazione. |
WM_DESTROY | Libera il file AVI o la risorsa AVI, libera una struttura di dati interna e quindi chiama la funzione DefWindowProc. |
WM_ERAedizione Standard BKGND | Cancella lo sfondo della finestra utilizzando il colore di sfondo corrente per i controlli statici. |
WM_NCCREATE | Alloca e inizializza una struttura di dati interna e quindi chiama DefWindowProc. |
WM_NCHITTEST | Restituisce il valore di hit test HTTRANSPARENT. |
WM_PAINT | Disegna un frame AVI nel controllo animazione. |
WM_SIZE | Controlla se il controllo ha lo stile ACS_CENTER. In caso contrario, chiama DefWindowProc. In caso contrario, centra l'animazione nel controllo, invalida il controllo e quindi chiama DefWindowProc. |