ID do artigo: 179907 - Última revisão: segunda-feira, 11 de julho de 2005 - Revisão: 1.2

Como exibir CAnimateCtrl com plano de fundo transparente

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.

Nesta página

Expandir tudo | Recolher tudo

Sumário

Este artigo mostra como exibir arquivos .avi com um plano de fundo transparente. O controle CAnimateCtrl suporta arquivos .avi com um plano de fundo transparente com uma limitação de 16 cores. O primeiro pixel na primeira moldura de um arquivo .avi determina a cor plano de fundo do controle CAnimateCtrl.

Mais Informações

Para exibir um arquivo .avi em CDialog ou suas classes derivadas, você precisará definir o estilo de CAnimateCtrl para ACM_TRANSPARENT. Se a cor do pixel primeiro o primeiro quadro de um arquivo .avi for diferente da cor de plano de fundo do objeto CDialog, em seguida, a cor de plano de fundo do objeto CDialog é usado como a cor de plano de fundo do arquivo .avi. Portanto, o controle CAminateCtrl terá um plano de fundo transparente.

Para exibir um arquivo .avi em CView ou suas classes derivadas, você deve interceptar a mensagem WM_CTLCOLOR na classe CView e retornar um pincel nulo (não para ser confundido com apenas retornar NULL) para o CAnimateCtrl. Além disso, você deve definir o estilo de CAnimateCtrl para ACM_TRANSPARENT. Caso contrário, a cor de plano de fundo de caixa de diálogo padrão será usada como a cor de plano de fundo para o controle de animação.

Por exemplo, se um CView derivado classe é CTestanimctrlView, você precisará adicionar o estilo ACM_TRANSPARENT para CAnimateCtrl, adicione ON_WM_CTLCOLOR o mapa da mensagem e adicionar um manipulador de mensagem OnCtlColor para a classe CTestanimctrlView conforme descrito nas etapas a seguir:

Código de exemplo

Adicione o seguinte código para o arquivo .h de CTestanimctrlView:
   CAnimateCtrl* m_pMyAnimateCtrl;
      afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
adicionar o código a seguir para o arquivo .cpp de CTestanimctrlView:
  1. Adicione o seguinte código no CTestanimctrlView::OnInitialUpdate:
          // Create my animate control.
          m_pMyAnimateCtrl = new CAnimateCtrl;
    
             UINT styles = WS_CHILD |  ACS_TRANSPARENT |  ACS_AUTOPLAY;
             m_pMyAnimateCtrl->Create(styles, CRect(100, 50, 300, 300), this,
                ID_MYANIM);   // here ID_MYANIM is the ID of m_pMyAnimateCtrl
  2. Adicione ON_MN_CTLCOLOR() o mapa da mensagem:
          BEGIN_MESSAGE_MAP(CTestanimctrlView, CView)
             //{{AFX_MSG_MAP(CTestanimctrlView)
             ON_WM_CTLCOLOR()
          END_MESSAGE_MAP()
  3. Adicionar o manipulador de mensagem para WM_CTLCOLOR:
          HBRUSH CCTestanimctrlView::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT
             nCtlColor)
          {
             UINT id = pWnd->GetDlgCtrlID();
             if (id == ID_MYANIM)
                return (HBRUSH)GetStockObject(NULL_BRUSH);
    
             HBRUSH hbr = CView::OnCtlColor(pDC, pWnd, nCtlColor);
             return hbr;
          }
    					
  4. Liberar a memória usada pelo controle animar:
          CTestanimctrlView::~CTestanimctrlView()
          {
             if (m_pMyAnimateCtrl) {
                m_pMyAnimateCtrl->DestroyWindow();
                delete m_pMyAnimateCtrl;
             }
          }

A informação contida neste artigo aplica-se a:
  • Microsoft Platform Software Development Kit-January 2000 Edition
  • Microsoft Foundation Class Library 4.2 nas seguintes plataformas
    • Microsoft Visual C++ 4.0 Standard Edition
    • Microsoft Visual C++ 4.0 Standard Edition
    • Microsoft Visual C++ 4.1 Subscription
    • Microsoft Visual C++ 4.2 Professional Edition
    • Microsoft Visual C++ 4.2 Enterprise Edition
    • Microsoft Visual C++ 4.2 Professional Edition
    • Microsoft Visual C++ 5.0 Enterprise Edition
    • Microsoft Visual C++ 5.0 Professional Edition
Palavras-chave: 
kbmt kbanimation kbctrl kbhowto KB179907 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 179907  (http://support.microsoft.com/kb/179907/en-us/ )