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.