MFC - Controle de Animação

Um controle de animação é uma janela que exibe um clipe de áudio em formato AVI. Um clipe AVI é uma série de quadros de bitmap, como um filme. Os controles de animação só podem reproduzir clipes AVI simples e não suportam som. É representado peloCAnimateCtrl classe.

A seguir está a lista de métodos na classe CAnimateCtrl -

Sr. Não. Métodos e Descrição
1

Close

Fecha o clipe AVI.

2

Create

Cria um controle de animação e o anexa a um objeto CAnimateCtrl.

3

CreateEx

Cria um controle de animação com os estilos estendidos do Windows especificados e o anexa a um objeto CAnimateCtrl.

4

IsPlaying

Indica se um clipe Audio-Video Interleaved (AVI) está sendo reproduzido.

5

Open

Abre um clipe AVI de um arquivo ou recurso e exibe o primeiro quadro.

6

Play

Reproduz o clipe AVI sem som.

7

Seek

Exibe um único quadro selecionado do clipe AVI.

8

Stop

Pára de reproduzir o clipe AVI.

Aqui está a lista de mapeamento de mensagens para controle de animação -

mensagem Entrada do mapa Descrição
ACN_START ON_ACN_START (<id>, <memberFxn>) A estrutura chama essa função de membro quando uma animação está sendo iniciada.
ACN_STOP ON_ACN_STOP (<id>, <memberFxn>) A estrutura chama essa função de membro quando uma animação é interrompida.

Vejamos um exemplo simples de controle de animação.

Step 1 - Crie um novo projeto baseado em diálogo MFC.

Step 2 - Uma vez que o projeto é criado, remova a linha TODO e clique em Controle de Animação na Caixa de Ferramentas e desenhe um retângulo como mostrado no seguinte instantâneo.

Step 3 - Para adicionar uma variável de controle para controle de animação, clique com o botão direito e selecione Adicionar variável.

Step 4 - Insira o nome e o tipo da variável, que é CAnimateCtrl para animação.

Step 5 - Usando a janela Propriedades, defina o valor da Borda como Falso, defina o Auto Play, o Centro e os valores transparentes como Verdadeiro.

Step 6 - Aqui temos o arquivo * .avi em res pasta, que é a pasta padrão para todos os recursos usados ​​no projeto.

Step 7 - Para iniciar a animação, precisamos chamar o método Open CAnimateCtrlclasse. Adicione a seguinte linha de código em CMFCAnimationDemoDlg :: OnInitDialog ()

m_animationCtrl.Open(L"res\\copyfile.avi");

Step 8 - Aqui está a implementação completa de 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 o código acima for compilado e executado, você verá a seguinte saída.