Megosztás a következőn keresztül:


CAnimateCtrl osztály

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

CObject

CCmdTarget

CWnd

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