CAnimateCtrl Sınıfı
Windows ortak animasyon denetiminin işlevselliğini sağlar.
class CAnimateCtrl : public CWnd
Veri Akışı Adı | Açıklama |
---|---|
CAnimateCtrl::CAnimateCtrl | Bir CAnimateCtrl nesne oluşturur. |
Veri Akışı Adı | Açıklama |
---|---|
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. |
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 CAnimateCtrl
hakkında daha fazla bilgi için bkz . Denetimler ve CAnimateCtrl Kullanma.
CAnimateCtrl
Üst bilgi: afxcmn.h
Bir CAnimateCtrl
nesne oluşturur.
CAnimateCtrl();
Oluşturduğunuz nesne üzerinde başka işlemler gerçekleştirebilmeniz için önce Create member işlevini çağırmanız gerekir.
// 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;
}
Daha önce animasyon denetiminde açılmış olan AVI klibini (varsa) kapatır ve bellekten kaldırır.
BOOL Close();
Başarılı olursa sıfır olmayan; aksi takdirde sıfır.
CAnimateCtrl::CAnimateCtrl örneğine bakın.
Bir animasyon denetimi oluşturur ve bunu bir CAnimateCtrl
nesneye ekler.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
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 RECT yapısı olabilir.
pParentWnd
Animasyon denetiminin üst penceresini ( genellikle bir CDialog
) belirtir. NULL olmamalıdır.
Nıd
Animasyon denetiminin kimliğini belirtir.
Başarılı olursa sıfır olmayan; aksi takdirde sıfır.
İ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ınCreate
CAnimateCtrl
.
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ı.
CAnimateCtrl::CAnimateCtrl örneğine bakın.
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);
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.
Başarılı olursa sıfır olmayan; aksi takdirde 0.
Windows genişletilmiş stil ön biçimi WS_EX_ tarafından belirtilen genişletilmiş Windows stillerini uygulamak için Oluştur yerine kullanınCreateEx
.
Bir Audio-Video Interleaved (AVI) klibinin oynatılıp oynatılmadığını gösterir.
BOOL IsPlaying() const;
AVI klibi yürütülüyorsa TRUE; aksi takdirde YANLIŞ.
Bu yöntem, Windows SDK'sında açıklanan ACM_ISPLAYING iletisini gönderir.
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);
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.
Başarılı olursa sıfır olmayan; aksi takdirde sıfır.
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.
CAnimateCtrl::CAnimateCtrl örneğine bakın.
Animasyon denetiminde AVI klibi oynatmak için bu işlevi çağır.
BOOL Play(
UINT nFrom,
UINT nTo,
UINT nRep);
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.
Başarılı olursa sıfır olmayan; aksi takdirde sıfır.
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.
CAnimateCtrl::CAnimateCtrl örneğine bakın.
AVI klibinizin tek bir çerçevesini statik olarak görüntülemek için bu işlevi çağırın.
BOOL Seek(UINT nTo);
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.
Başarılı olursa sıfır olmayan; aksi takdirde sıfır.
Animasyon denetiminin ACS_TRANSPARENT
stili varsa, AVI klibi animasyon klibinde belirtilen arka plan rengi yerine saydam bir arka plan kullanılarak çizilir.
CAnimateCtrl::CAnimateCtrl örneğine bakın.
Animasyon denetiminde AVI klibi yürütmeyi durdurmak için bu işlevi çağırın.
BOOL Stop();
Başarılı olursa sıfır olmayan; aksi takdirde sıfır.
CAnimateCtrl::CAnimateCtrl örneğine bakın.
CWnd Sınıfı
Hiyerarşi Grafiği
CAnimateCtrl::Create
ON_CONTROL