Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés:
A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.
A Windows általános animációs vezérlőjének funkcióit biztosítja.
Szemantika
class CAnimateCtrl : public CWnd
Tagok
Nyilvános konstruktorok
| Név | Description |
|---|---|
| CAnimateCtrl::CAnimateCtrl | Egy CAnimateCtrl objektumot hoz létre. |
Nyilvános metódusok
| Név | Description |
|---|---|
| CAnimateCtrl::Close | Bezárja az AVI-klipet. |
| CAnimateCtrl::Létrehozás | Létrehoz egy animációs vezérlőt, és csatolja egy CAnimateCtrl objektumhoz. |
| CAnimateCtrl::CreateEx | Létrehoz egy animációs vezérlőt a megadott Bővített Windows-stílusokkal, és csatolja egy CAnimateCtrl objektumhoz. |
| CAnimateCtrl::IsPlaying | Azt jelzi, hogy egy Audio-Video Interleaved (AVI) klip van-e lejátszva. |
| CAnimateCtrl::Megnyitás | Megnyit egy AVI-klipet egy fájlból vagy erőforrásból, és megjeleníti az első keretet. |
| CAnimateCtrl::P lay | Hang nélkül játssza le az AVI-klipet. |
| CAnimateCtrl::Keresés | Az AVI-klip kijelölt egyetlen keretét jeleníti meg. |
| CAnimateCtrl::Stop | Leállítja az AVI-klip lejátszását. |
Megjegyzések
Ez a vezérlő (és ezért az CAnimateCtrl osztály) csak a Windows 95, a Windows 98 és a Windows NT 3.51-es és újabb verzióiban futó programokhoz érhető el.
Az animációs vezérlő egy négyszögletes ablak, amely AVI (Audio Video Interleaved) formátumban jeleníti meg a klipet– ez a szabványos Windows video- és hangformátum. Az AVI-klipek olyan bitképkeretek sorozatai, mint egy film.
Az animációs vezérlők csak egyszerű AVI-klipeket képesek lejátszani. Az animációs vezérlő által lejátszandó klipeknek meg kell felelniük a következő követelményeknek:
Pontosan egy videóstreamnek kell lennie, és legalább egy kerettel kell rendelkeznie.
A fájlban legfeljebb két stream lehet (általában a másik stream, ha van, hangstream, bár az animációs vezérlő figyelmen kívül hagyja a hanginformációkat).
A klipnek tömörítetlennek vagy RLE8-tömörítéssel tömörítettnek kell lennie.
A videóstreamben nem engedélyezett a palettamódosítás.
Hozzáadhatja az AVI-klipet az alkalmazáshoz AVI-erőforrásként, vagy külön AVI-fájlként kísérheti az alkalmazást.
Mivel a szál az AVI-klip megjelenése közben is folytatja a végrehajtást, az animációs vezérlők egyik gyakori használata a rendszertevékenységek hosszú művelet közbeni jelzése. A Fájlkezelő Keresés párbeszédpanelén például egy mozgó nagyító jelenik meg, amikor a rendszer egy fájlt keres.
Ha egy párbeszédpanelen vagy egy párbeszédpanel-erőforrásból hoz létre CAnimateCtrl objektumot a párbeszédpanel-szerkesztővel, az automatikusan törlődik, amikor a felhasználó bezárja a párbeszédpanelt.
Ha egy objektumot CAnimateCtrl egy ablakban hoz létre, előfordulhat, hogy el kell pusztítania. Ha létrehozza az CAnimateCtrl objektumot a veremen, az automatikusan megsemmisül. Ha a függvény használatával hozza létre az CAnimateCtrl objektumot a new halomon, meg kell hívnia delete az objektumot, hogy elpusztítsa azt. Ha új osztályt hoz létre az osztályból CAnimateCtrl , és bármilyen memóriát lefoglal az adott osztályban, felülbírálja a CAnimateCtrl destruktort a foglalások törléséhez.
A használatról CAnimateCtrltovábbi információt a Vezérlők és a CAnimateCtrl használata című témakörben talál.
Öröklési hierarchia
CAnimateCtrl
Requirements
Fejléc: afxcmn.h
CAnimateCtrl::CAnimateCtrl
Egy CAnimateCtrl objektumot hoz létre.
CAnimateCtrl();
Megjegyzések
Ahhoz, hogy bármilyen más műveletet végrehajthasson a létrehozott objektumon, meg kell hívnia a Tag létrehozása függvényt.
Example
// 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
Bezárja a korábban az animációs vezérlőben megnyitott AVI-klipet (ha van ilyen), és eltávolítja a memóriából.
BOOL Close();
Visszaadott érték
Nonzero, ha sikeres; ellenkező esetben nulla.
Example
Lásd a CAnimateCtrl::CAnimateCtrl példát.
CAnimateCtrl::Létrehozás
Létrehoz egy animációs vezérlőt, és csatolja egy CAnimateCtrl objektumhoz.
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Paraméterek
dwStyle
Az animációs vezérlő stílusát adja meg. Alkalmazza az alábbi Megjegyzések szakaszban leírt windowsstílusok és a Windows SDK animációvezérlő stílusaiban leírt animációvezérlő stílusok bármilyen kombinációját.
téglalap
Az animációs vezérlő pozícióját és méretét határozza meg. Lehet CRect objektum vagy RECT-struktúra .
pParentWnd
Az animációs vezérlő szülőablakát adja meg, általában egy CDialog. Nem lehet NULL.
Nid
Az animációs vezérlő azonosítóját adja meg.
Visszaadott érték
Nonzero, ha sikeres; ellenkező esetben nulla.
Megjegyzések
Két lépésben hozhat létre egy CAnimateCtrl elemet. Először hívja meg a konstruktort, majd hívja meg Createaz animációs vezérlőt, és csatolja az CAnimateCtrl objektumhoz.
Alkalmazza az alábbi ablakstílusokat egy animációs vezérlőre.
WS_CHILD Always
WS_VISIBLE általában
WS_DISABLED ritkán
Ha bővített ablakstílusokat szeretne használni az animációs vezérlővel, ahelyett hívja meg a CreateCreateExet.
A fenti ablakstílusok mellett érdemes lehet egy vagy több animációs vezérlőstílust alkalmazni egy animációs vezérlőre. Az animációs vezérlőstílusokkal kapcsolatos további információkért tekintse meg a Windows SDK-t.
Example
Lásd a CAnimateCtrl::CAnimateCtrl példát.
CAnimateCtrl::CreateEx
Létrehoz egy vezérlőt (egy gyermekablakot), és társítja azt az CAnimateCtrl objektummal.
virtual BOOL CreateEx(
DWORD dwExStyle,
DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd,
UINT nID);
Paraméterek
dwExStyle
A létrehozott vezérlőelem kiterjesztett stílusát adja meg. A bővített Windows-stílusok listáját a CreateWindowExdwExStyle paraméterében találja a Windows SDK-ban.
dwStyle
Az animációs vezérlő stílusát adja meg. Alkalmazza az ablak- és animációvezérlő stílusok tetszőleges kombinációját a Windows SDK animációvezérlő stílusaiban leírtak szerint.
téglalap
Hivatkozás a létrehozandó ablak méretét és pozícióját leíró RECT-struktúrára a pParentWnd ügyfélkoordinátáiban.
pParentWnd
A vezérlő szülőablakára mutató mutató.
Nid
A vezérlő gyermekablak-azonosítója.
Visszaadott érték
Nonzero, ha sikeres; egyéb esetben 0.
Megjegyzések
A CreateExLétrehozás helyett kiterjesztett Windows-stílusokat alkalmazhat, amelyeket a Windows bővített stílus előszavában WS_EX_.
CAnimateCtrl::IsPlaying
Azt jelzi, hogy egy Audio-Video Interleaved (AVI) klip van-e lejátszva.
BOOL IsPlaying() const;
Visszaadott érték
IGAZ, ha egy AVI-klip van lejátszva; egyéb esetben HAMIS.
Megjegyzések
Ez a metódus elküldi a Windows SDK-ban leírt ACM_ISPLAYING üzenetet.
CAnimateCtrl::Megnyitás
A függvény meghívásával nyisson meg egy AVI-klipet, és jelenítse meg az első keretét.
BOOL Open(LPCTSTR lpszFileName);
BOOL Open(UINT nID);
Paraméterek
lpszFileName
Objektum CString vagy mutató null értékű sztringre, amely az AVI-fájl nevét vagy egy AVI-erőforrás nevét tartalmazza. Ha ez a paraméter NULL, a rendszer bezárja a korábban az animációvezérlőhöz megnyitott AVI-klipet, ha van ilyen.
Nid
Az AVI-erőforrás azonosítója. Ha ez a paraméter NULL, a rendszer bezárja a korábban az animációvezérlőhöz megnyitott AVI-klipet, ha van ilyen.
Visszaadott érték
Nonzero, ha sikeres; ellenkező esetben nulla.
Megjegyzések
Az AVI-erőforrás az animációvezérlőt létrehozó modulból töltődik be.
Open nem támogatja az AVI-klipek hangjelzését; csak csendes AVI-klipeket nyithat meg.
Ha az animációs vezérlő stílust ACS_AUTOPLAY használ, az animációs vezérlő a megnyitás után azonnal automatikusan elkezdi lejátszani a klipet. Továbbra is a háttérben fogja lejátszani a klipet, amíg a szál folytatja a végrehajtást. Ha a klip lejátszása befejeztével a rendszer automatikusan megismétli a klipet.
Ha az animációs vezérlő stílussal ACS_CENTER rendelkezik, az AVI-klip középre kerül a vezérlőben, és a vezérlőelem mérete nem változik. Ha az animációs vezérlő nem rendelkezik a ACS_CENTER stílussal, a vezérlő átméreteződik, amikor az AVI-klip meg van nyitva az AVI-klipben lévő képek méretére. A vezérlő bal felső sarkának pozíciója nem változik, csak a vezérlő mérete.
Ha az animációs vezérlő stílussal ACS_TRANSPARENT rendelkezik, az első képkockát áttetsző háttérrel rajzolja meg, nem pedig az animációs klipben megadott háttérszínnel.
Example
Lásd a CAnimateCtrl::CAnimateCtrl példát.
CAnimateCtrl::P lay
A függvény meghívása AVI-klip lejátszásához egy animációs vezérlőben.
BOOL Play(
UINT nFrom,
UINT nTo,
UINT nRep);
Paraméterek
nFrom
Annak a keretnek a nullaalapú indexe, amelyben a lejátszás kezdődik. Az értéknek 65 536-nál kisebbnek kell lennie. A 0 érték azt jelenti, hogy az AVI-klip első képkockájával kezdődik.
Nto
A keret nullaalapú indexe, ahol a lejátszás véget ér. Az értéknek 65 536-nál kisebbnek kell lennie. Az - 1 érték azt jelenti, hogy az AVI-klip utolsó képkockájával végződik.
nRep
Az AVI-klip lejátszásának száma. Az - 1 érték azt jelenti, hogy a fájlt határozatlan időre visszajátssza.
Visszaadott érték
Nonzero, ha sikeres; ellenkező esetben nulla.
Megjegyzések
Az animációs vezérlő a háttérben fogja lejátszani a klipet, amíg a szál folytatja a végrehajtást. Ha az animációs vezérlő stílussal rendelkezik ACS_TRANSPARENT , az AVI-klipet az animációs klipben megadott háttérszín helyett transzparens háttérrel játssza le.
Example
Lásd a CAnimateCtrl::CAnimateCtrl példát.
CAnimateCtrl::Keresés
Hívja meg ezt a függvényt, hogy statikusan megjelenítse az AVI-klip egyetlen keretét.
BOOL Seek(UINT nTo);
Paraméterek
Nto
A megjelenítendő keret nullaalapú indexe. Az értéknek 65 536-nál kisebbnek kell lennie. A 0 érték azt jelenti, hogy az AVI-klip első képkockáját jeleníti meg. A -1 értéke azt jelenti, hogy az utolsó képkockát jeleníti meg az AVI-klipben.
Visszaadott érték
Nonzero, ha sikeres; ellenkező esetben nulla.
Megjegyzések
Ha az animációs vezérlő stílussal rendelkezik ACS_TRANSPARENT , az AVI-klip az animációs klipben megadott háttérszín helyett átlátszó háttérrel lesz rajzolva.
Example
Lásd a CAnimateCtrl::CAnimateCtrl példát.
CAnimateCtrl::Stop
A függvény meghívása az AVI-klipek animációs vezérlőben való lejátszásának leállításához.
BOOL Stop();
Visszaadott érték
Nonzero, ha sikeres; ellenkező esetben nulla.
Example
Lásd a CAnimateCtrl::CAnimateCtrl példát.
Lásd még
CWnd osztály
hierarchiadiagram
CAnimateCtrl::Létrehozás
ON_CONTROL