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.