Makale numarası: 179907 - Son Gözden Geçirme: 11 Temmuz 2005 Pazartesi - Gözden geçirme: 1.2

Saydam arka plan ile ekran CAnimateCtrl nasıl

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Özet

Bu makalede, .avi dosyalarının saydam bir arka plan görüntüleme gösterilmiştir. CAnimateCtrl Denetim saydam arka plan 16 renkli bir kısıtlaması ile .avi dosyalarını destekler. Bir .avi dosyasını ilk çerçevesi içinde ilk piksel CAnimateCtrl denetimin arka plan rengi olarak belirler.

Daha fazla bilgi

Bir .avi dosyasını CDialog veya türetilen sınıflardan görüntülemek için <a0></a0>, CAnimateCtrl stilini ACM_TRANSPARENT için ayarlamanız gerekecek. Bir .avi dosyasını ilk çerçevesi içinde ilk pikselin farklıysa nesnesinin CDialog CDialog nesne daha sonra arka plan rengini arka plan rengi .avi dosyasını arka plan rengi olarak kullanılır. Bu nedenle, CAminateCtrl Denetim saydam arka plan gerekir.

CView veya türetilen sınıflardan bir .avi dosyasını görüntülemek için <a0></a0>, CView sınıfı WM_CTLCOLOR iletisinde müdahale ve boş (NULL döndürülüyor ile karıştırılmaması için <a0></a0>) fırça için CAnimateCtrl dönün. Buna ek olarak, CAnimateCtrl stilini ACM_TRANSPARENT için ayarlamanız gerekir. Aksi halde, varsayılan iletişim kutusunu arka plan rengi animasyon denetim için arka plan rengi olarak kullanılır.

Örneğin, bir CView türetilmiş, sınıf CTestanimctrlView, ACM_TRANSPARENT stili için CAnimateCtrl, ON_WM_CTLCOLOR ileti eşlemeye ekleyin ve aşağıdaki adımlarda açıklandığı gibi CTestanimctrlView sınıf içinde bir OnCtlColor ileti işleyicisi eklemek gerekir:

Örnek kod

Aşağıdaki kodu CTestanimctrlView .h dosyasına ekleyin:
   CAnimateCtrl* m_pMyAnimateCtrl;
      afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
CTestanimctrlView .cpp dosyasına aşağıdaki kodu ekleyin:
  1. CTestanimctrlView::OnInitialUpdate aşağıdaki kodu ekleyin:
          // 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. Iletinin eşlemeye ON_MN_CTLCOLOR() ekleyin:
          BEGIN_MESSAGE_MAP(CTestanimctrlView, CView)
             //{{AFX_MSG_MAP(CTestanimctrlView)
             ON_WM_CTLCOLOR()
          END_MESSAGE_MAP()
  3. Ileti işleyicisi için WM_CTLCOLOR ekleyin:
          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. Boş Canlandır denetim tarafından kullanılan bellek:
          CTestanimctrlView::~CTestanimctrlView()
          {
             if (m_pMyAnimateCtrl) {
                m_pMyAnimateCtrl->DestroyWindow();
                delete m_pMyAnimateCtrl;
             }
          }

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Platform Software Development Kit - Ocak 2000 Sürümü
  • Microsoft Foundation Class Library 4.2, Ne zaman ne ile kullanilir:
    • Microsoft Visual C++ 4.0 Standard Edition
    • Microsoft Visual C++ 4.0 Standard Edition
    • Microsoft Visual C++ 4.1 Aboneliği
    • 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
Anahtar Kelimeler: 
kbmt kbanimation kbctrl kbhowto KB179907 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:179907  (http://support.microsoft.com/kb/179907/en-us/ )