Aracılığıyla paylaş


CAnimateCtrl Sınıfı

Windows ortak animasyon denetiminin işlevselliğini sağlar.

Sözdizimi

class CAnimateCtrl : public CWnd

Üyeler

Ortak Oluşturucular

Ad Tanım
CAnimateCtrl::CAnimateCtrl Bir CAnimateCtrl nesne oluşturur.

Genel Yöntemler

Ad Tanım
CAnimateCtrl::Close AVI klibini kapatır.
CAnimateCtrl::Create Bir animasyon denetimi oluşturur ve bunu bir CAnimateCtrl nesneye ekler.
CAnimateCtrl::CreateEx Belirtilen Windows genişletilmiş stilleriyle bir animasyon denetimi oluşturur ve bunu bir CAnimateCtrl nesneye ekler.
CAnimateCtrl::IsPlaying Bir Audio-Video Interleaved (AVI) klibinin oynatılıp oynatılmadığını gösterir.
CAnimateCtrl::Open Bir dosyadan veya kaynaktan bir AVI klibi açar ve ilk çerçeveyi görüntüler.
CAnimateCtrl::P lay AVI klibini ses olmadan çalar.
CAnimateCtrl::Seek AVI klibinin seçili tek çerçevesini görüntüler.
CAnimateCtrl::Stop AVI klibini yürütmeyi durdurur.

Açıklamalar

Bu denetim (ve dolayısıyla CAnimateCtrl sınıf) yalnızca Windows 95, Windows 98 ve Windows NT sürüm 3.51 ve üzeri altında çalışan programlarda kullanılabilir.

Animasyon denetimi, bir klibi standart Windows video/ses biçimi olan AVI (Ses Videosu Araya Eklendi) biçiminde görüntüleyen dikdörtgen bir penceredir. AVI klibi, film gibi bit eşlem çerçeveleri dizisidir.

Animasyon denetimleri yalnızca basit AVI kliplerini oynatabilir. Özellikle, animasyon denetimi tarafından oynatılacak kliplerin aşağıdaki gereksinimleri karşılaması gerekir:

  • Tam olarak bir video akışı olmalı ve en az bir karesi olmalıdır.

  • Dosyada en fazla iki akış olabilir (varsa diğer akış bir ses akışıdır, ancak animasyon denetimi ses bilgilerini yoksayar).

  • Klibin sıkıştırılmaması veya RLE8 sıkıştırmasıyla sıkıştırılması gerekir.

  • Video akışında palet değişikliğine izin verilmez.

AVI klibini uygulamanıza bir AVI kaynağı olarak ekleyebilir veya uygulamanıza ayrı bir AVI dosyası olarak eşlik edebilir.

AVI klibi görüntülenirken iş parçacığınız yürütülmeye devam ettiğinden, animasyon denetiminin yaygın kullanımlarından biri uzun bir işlem sırasında sistem etkinliğini göstermektir. Örneğin, Dosya Gezgini Bul iletişim kutusunda sistem bir dosyayı ararken hareketli bir büyüteç görüntülenir.

İletişim kutusu içinde veya iletişim kutusu kaynağından iletişim kutusu düzenleyicisini kullanarak bir nesne oluşturursanız CAnimateCtrl , kullanıcı iletişim kutusunu kapattığında nesne otomatik olarak yok edilir.

Bir pencere içinde bir CAnimateCtrl nesne oluşturursanız, onu yok etmeniz gerekebilir. Nesneyi yığında oluşturursanız CAnimateCtrl , nesne otomatik olarak yok edilir. işlevini kullanarak new yığında nesnesi oluşturursanızCAnimateCtrl, yok etmek için nesnede çağrısında delete bulunması gerekir. öğesinden CAnimateCtrl yeni bir sınıf türetir ve bu sınıftaki herhangi bir belleği ayırırsanız, ayırmaları atmak için yıkıcıyı geçersiz kılın CAnimateCtrl .

kullanma CAnimateCtrlhakkında daha fazla bilgi için bkz . Denetimler ve CAnimateCtrl Kullanma.

Devralma Hiyerarşisi

Cobject

Ccmdtarget

Cwnd

CAnimateCtrl

Gereksinimler

Üst bilgi: afxcmn.h

CAnimateCtrl::CAnimateCtrl

Bir CAnimateCtrl nesne oluşturur.

CAnimateCtrl();

Açıklamalar

Oluşturduğunuz nesne üzerinde başka işlemler gerçekleştirebilmeniz için önce Create member işlevini çağırmanız gerekir.

Örnek

// This example creates a secondary thread that implements
// the methods of CAnimateCtrl. The procedure of the thread
// is MyClipThreadProc and the thread was created with the
// code AfxBeginThread( MyClipThreadProc, (LPVOID) pParentWnd).
// The example code creates and initializes an animation control,
// then proceeds to pump messages from the queue until one the
// private messages WM_STOPCLIP, WM_PLAYCLIP, WM_SHOWFIRSTFRAME or
// WM_SHOWLASTFRAME is received. The appropriate action is done for
// these messages. The thread ends when the WM_STOPCLIP is received.
// NOTE: the thread parameter, pParam, is a pointer to a CWnd object
// that will be the parent of the animation control.

#define WM_STOPCLIP WM_USER + 1
#define WM_PLAYCLIP WM_USER + 2
#define WM_SHOWFIRSTFRAME WM_USER + 3
#define WM_SHOWLASTFRAME WM_USER + 4

UINT MyClipThreadProc(LPVOID pParam)
{
   // NOTE: pParentWnd is the parent window of the animation control.
   CWnd *pParentWnd = (CWnd *)pParam;
   CAnimateCtrl cAnimCtrl;

   // Create the animation control.
   if (!cAnimCtrl.Create(WS_CHILD | WS_VISIBLE | ACS_CENTER,
                         CRect(10, 10, 100, 100), pParentWnd, 1))
   {
      return false;
   }

   // Open the AVI file.
   if (!cAnimCtrl.Open(_T("MyAvi.avi")))
   {
      return false;
   }

   // Pump message from the queue until the stop play message is received.
   MSG msg;
   while (GetMessage(&msg, NULL, 0, 0) && (msg.message != WM_STOPCLIP))
   {
      switch (msg.message)
      {
         // Start playing from the first frame to the last,
         // continuously repeating.
      case WM_PLAYCLIP:
         if (!cAnimCtrl.Play(0, (UINT)-1, (UINT)-1))
            return false;
         break;

         // Show the first frame.
      case WM_SHOWFIRSTFRAME:
         if (!cAnimCtrl.Seek(0))
            return false;
         cAnimCtrl.RedrawWindow();
         break;

         // Show the last frame.
      case WM_SHOWLASTFRAME:
         if (!cAnimCtrl.Seek((UINT)-1))
            return false;
         cAnimCtrl.RedrawWindow();
         break;
      }

      TranslateMessage(&msg);
      DispatchMessage(&msg);
   }

   cAnimCtrl.Stop();
   cAnimCtrl.Close();

   return true;
}

CAnimateCtrl::Close

Daha önce animasyon denetiminde açılmış olan AVI klibini (varsa) kapatır ve bellekten kaldırır.

BOOL Close();

İade Değeri

Başarılı olursa sıfır olmayan; aksi takdirde sıfır.

Örnek

CAnimateCtrl::CAnimateCtrl örneğine bakın.

CAnimateCtrl::Create

Bir animasyon denetimi oluşturur ve bunu bir CAnimateCtrl nesneye ekler.

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parametreler

Dwstyle
Animasyon denetiminin stilini belirtir. Aşağıdaki Açıklamalar bölümünde açıklanan windows stillerinin herhangi bir bileşimini ve Windows SDK'sında Animasyon Denetimi Stilleri'nde açıklanan animasyon denetimi stillerini uygulayın.

Rect
Animasyon denetiminin konumunu ve boyutunu belirtir. Bir CRect nesnesi veya RECTyapısı olabilir.

pParentWnd
Animasyon denetiminin üst penceresini ( genellikle bir CDialog) belirtir. NULL olmamalıdır.

Nıd
Animasyon denetiminin kimliğini belirtir.

İade Değeri

Başarılı olursa sıfır olmayan; aksi takdirde sıfır.

Açıklamalar

İki adımda bir CAnimateCtrl oluşturursunuz. İlk olarak oluşturucuyu çağırın ve ardından animasyon denetimini oluşturan ve nesnesine ekleyen öğesini çağırınCreateCAnimateCtrl.

Animasyon denetimine aşağıdaki pencere stillerini uygulayın.

  • Her Zaman WS_CHILD

  • WS_VISIBLE Genellikle

  • WS_DISABLED Nadiren

Genişletilmiş windows stillerini animasyon denetiminizle kullanmak istiyorsanız, yerine CreateEx'i çağırın.Create

Yukarıda listelenen pencere stillerine ek olarak, animasyon denetimi stillerinden birini veya daha fazlasını bir animasyon denetimine uygulamak isteyebilirsiniz. Animasyon denetimi stilleri hakkında daha fazla bilgi için bkz. Windows SDK'sı.

Örnek

CAnimateCtrl::CAnimateCtrl örneğine bakın.

CAnimateCtrl::CreateEx

Bir denetim (alt pencere) oluşturur ve bunu nesnesiyle CAnimateCtrl ilişkilendirir.

virtual BOOL CreateEx(
    DWORD dwExStyle,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parametreler

dwExStyle
Oluşturulan denetimin genişletilmiş stilini belirtir. Genişletilmiş Windows stillerinin listesi için Windows SDK'sında CreateWindowEx için dwExStyle parametresine bakın.

Dwstyle
Animasyon denetiminin stilini belirtir. Windows SDK'sında Animasyon Denetimi Stilleri'nde açıklanan pencere ve animasyon denetim stillerinin herhangi bir bileşimini uygulayın.

Rect
pParentWnd istemci koordinatlarında oluşturulacak pencerenin boyutunu ve konumunu açıklayan rect yapısına başvuru.

pParentWnd
Denetimin üst öğesi olan pencere işaretçisi.

Nıd
Denetimin alt pencere kimliği.

İade Değeri

Başarılı olursa sıfır olmayan; aksi takdirde 0.

Açıklamalar

Windows genişletilmiş stil ön biçimi WS_EX_ tarafından belirtilen genişletilmiş Windows stillerini uygulamak için Oluştur yerine kullanınCreateEx.

CAnimateCtrl::IsPlaying

Bir Audio-Video Interleaved (AVI) klibinin oynatılıp oynatılmadığını gösterir.

BOOL IsPlaying() const;

İade Değeri

AVI klibi yürütülüyorsa TRUE; aksi takdirde YANLIŞ.

Açıklamalar

Bu yöntem, Windows SDK'sında açıklanan ACM_ISPLAYING iletisini gönderir.

CAnimateCtrl::Open

Bu işlevi çağırarak bir AVI klibi açın ve ilk çerçevesini görüntüleyin.

BOOL Open(LPCTSTR lpszFileName);
BOOL Open(UINT nID);

Parametreler

lpszFileName
CString AVI dosyasının adını veya AVI kaynağının adını içeren null olarak sonlandırılan dizeye yönelik bir nesne veya işaretçi. Bu parametre NULL ise, varsa sistem animasyon denetimi için daha önce açılmış olan AVI klibini kapatır.

Nıd
AVI kaynak tanımlayıcısı. Bu parametre NULL ise, varsa sistem animasyon denetimi için daha önce açılmış olan AVI klibini kapatır.

İade Değeri

Başarılı olursa sıfır olmayan; aksi takdirde sıfır.

Açıklamalar

AVI kaynağı, animasyon denetimini oluşturan modülden yüklenir.

Open AVI klibindeki sesi desteklemez; yalnızca sessiz AVI kliplerini açabilirsiniz.

Animasyon denetimi stiline ACS_AUTOPLAY sahipse, animasyon denetimi klibi açtıktan hemen sonra otomatik olarak oynatmaya başlar. İş parçacığınız yürütülmeye devam ederken klibi arka planda oynatmaya devam eder. Klibin oynatılması tamamlandığında otomatik olarak yinelenir.

Animasyon denetiminin ACS_CENTER stili varsa, AVI klibi denetimde ortalanır ve denetimin boyutu değişmez. Animasyon denetiminin ACS_CENTER stili yoksa, AVI klibi AVI klibindeki görüntülerin boyutuna açıldığında denetim yeniden boyutlandırılır. Denetimin sol üst köşesinin konumu değişmez, yalnızca denetimin boyutu değişmez.

Animasyon denetiminin ACS_TRANSPARENT stili varsa, ilk kare animasyon klibinde belirtilen arka plan rengi yerine saydam bir arka plan kullanılarak çizilir.

Örnek

CAnimateCtrl::CAnimateCtrl örneğine bakın.

CAnimateCtrl::P lay

Animasyon denetiminde AVI klibi oynatmak için bu işlevi çağır.

BOOL Play(
    UINT nFrom,
    UINT nTo,
    UINT nRep);

Parametreler

nFrom
Yürütmenin başladığı çerçevenin sıfır tabanlı dizini. Değer 65.536'dan küçük olmalıdır. 0 değeri, AVI klibindeki ilk kareyle başlama anlamına gelir.

nTo
Yürütmenin sona erdiği çerçevenin sıfır tabanlı dizini. Değer 65.536'dan küçük olmalıdır. - 1 değeri, AVI klibindeki son kareyle biten anlamına gelir.

nRep
AVI klibini yeniden oynatma sayısı. - 1 değeri, dosyayı süresiz olarak yeniden yürütme anlamına gelir.

İade Değeri

Başarılı olursa sıfır olmayan; aksi takdirde sıfır.

Açıklamalar

animasyon denetimi, iş parçacığınız yürütülürken klibi arka planda yürütür. Animasyon denetiminin ACS_TRANSPARENT stili varsa, AVI klibi animasyon klibinde belirtilen arka plan rengi yerine saydam bir arka plan kullanılarak oynatılır.

Örnek

CAnimateCtrl::CAnimateCtrl örneğine bakın.

CAnimateCtrl::Seek

AVI klibinizin tek bir çerçevesini statik olarak görüntülemek için bu işlevi çağırın.

BOOL Seek(UINT nTo);

Parametreler

nTo
Görüntülenecek çerçevenin sıfır tabanlı dizini. Değer 65.536'dan küçük olmalıdır. 0 değeri, AVI klibindeki ilk kareyi görüntüleme anlamına gelir. -1 değeri, AVI klibindeki son kareyi görüntüleme anlamına gelir.

İade Değeri

Başarılı olursa sıfır olmayan; aksi takdirde sıfır.

Açıklamalar

Animasyon denetiminin ACS_TRANSPARENT stili varsa, AVI klibi animasyon klibinde belirtilen arka plan rengi yerine saydam bir arka plan kullanılarak çizilir.

Örnek

CAnimateCtrl::CAnimateCtrl örneğine bakın.

CAnimateCtrl::Stop

Animasyon denetiminde AVI klibi yürütmeyi durdurmak için bu işlevi çağırın.

BOOL Stop();

İade Değeri

Başarılı olursa sıfır olmayan; aksi takdirde sıfır.

Örnek

CAnimateCtrl::CAnimateCtrl örneğine bakın.

Ayrıca bkz.

CWnd Sınıfı
Hiyerarşi Grafiği
CAnimateCtrl::Create
ON_CONTROL