MFC - Controllo dell'animazione
Un controllo di animazione è una finestra che visualizza un clip audio in formato AVI. Una clip AVI è una serie di fotogrammi bitmap, come un film. I controlli di animazione possono riprodurre solo clip AVI semplici e non supportano l'audio. È rappresentato dalCAnimateCtrl classe.
Di seguito è riportato l'elenco dei metodi nella classe CAnimateCtrl:
Sr.No. | Metodi e descrizione |
---|---|
1 | Close Chiude la clip AVI. |
2 | Create Crea un controllo di animazione e lo collega a un oggetto CAnimateCtrl. |
3 | CreateEx Crea un controllo di animazione con gli stili estesi di Windows specificati e lo collega a un oggetto CAnimateCtrl. |
4 | IsPlaying Indica se è in riproduzione un clip Audio-Video Interleaved (AVI). |
5 | Open Apre un clip AVI da un file o una risorsa e visualizza il primo fotogramma. |
6 | Play Riproduce il clip AVI senza audio. |
7 | Seek Visualizza un singolo fotogramma selezionato della clip AVI. |
8 | Stop Interrompe la riproduzione del clip AVI. |
Ecco l'elenco della mappatura dei messaggi per il controllo dell'animazione:
Messaggio | Voce sulla mappa | Descrizione |
---|---|---|
ACN_START | ON_ACN_START (<id>, <memberFxn>) | Il framework chiama questa funzione membro quando viene avviata un'animazione. |
ACN_STOP | ON_ACN_STOP (<id>, <memberFxn>) | Il framework chiama questa funzione membro quando un'animazione si ferma. |
Esaminiamo un semplice esempio di controllo dell'animazione.
Step 1 - Crea un nuovo progetto basato sulla finestra di dialogo MFC.
Step 2 - Una volta creato il progetto, rimuovere la linea TODO e fare clic su Controllo animazione nella casella degli strumenti e disegnare un rettangolo come mostrato nella seguente istantanea.
Step 3 - Per aggiungere una variabile di controllo per il controllo dell'animazione, fare clic con il pulsante destro del mouse e selezionare Aggiungi variabile.
Step 4 - Immettere il nome della variabile e il tipo di variabile, ovvero CAnimateCtrl per l'animazione.
Step 5 - Utilizzando la finestra Proprietà, impostare il valore del bordo su False, impostare la riproduzione automatica, il centro e i valori di trasparenza su True.
Step 6 - Qui abbiamo il file * .avi in formato res cartella, che è la cartella predefinita per tutte le risorse utilizzate nel progetto.
Step 7 - Per avviare l'animazione, dobbiamo chiamare il metodo Open CAnimateCtrlclasse. Aggiungi la seguente riga di codice in CMFCAnimationDemoDlg :: OnInitDialog ()
m_animationCtrl.Open(L"res\\copyfile.avi");
Step 8 - Ecco l'implementazione completa di CMFCAnimationDemoDlg :: OnInitDialog ()
BOOL CMFCAnimationDemoDlg::OnInitDialog(){
CDialogEx::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL){
BOOL bNameValid;
CString strAboutMenu;
bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
ASSERT(bNameValid);
if (!strAboutMenu.IsEmpty()){
pSysMenu -> AppendMenu(MF_SEPARATOR);
pSysMenu -> AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
m_animationCtrl.Open(L"res\\copyfile.avi");
return TRUE; // return TRUE unless you set the focus to a control
}
Step 9 - Quando il codice sopra è stato compilato ed eseguito, vedrai il seguente output.