Share via


CAnimateCtrl-klasse

Opmerking

De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

Biedt de functionaliteit van het algemene besturingselement voor windows-animaties.

Syntaxis

class CAnimateCtrl : public CWnd

Leden

Openbare constructors

Naam Description
CAnimateCtrl::CAnimateCtrl Maakt een CAnimateCtrl object.

Openbare methoden

Naam Description
CAnimateCtrl::Close Sluit de AVI clip.
CAnimateCtrl::Maken Hiermee maakt u een animatie-besturingselement en koppelt u dit aan een CAnimateCtrl object.
CAnimateCtrl::CreateEx Hiermee maakt u een animatie-besturingselement met de opgegeven uitgebreide Stijlen van Windows en koppelt u dit aan een CAnimateCtrl object.
CAnimateCtrl::IsPlaying Geeft aan of een Audio-Video Avi-clip (Interleaved) wordt afgespeeld.
CAnimateCtrl::Open Hiermee opent u een AVI-clip van een bestand of resource en wordt het eerste frame weergegeven.
CAnimateCtrl::P lay Hiermee wordt de AVI clip zonder geluid afgespeeld.
CAnimateCtrl::Seek Hiermee wordt een geselecteerd enkel frame van de AVI-clip weergegeven.
CAnimateCtrl::Stop Stopt met het afspelen van de AVI-clip.

Opmerkingen

Dit besturingselement (en daarom de CAnimateCtrl klasse) is alleen beschikbaar voor programma's die worden uitgevoerd onder Windows 95, Windows 98 en Windows NT versie 3.51 en hoger.

Een animatie-besturingselement is een rechthoekig venster dat een clip weergeeft in AVI-indeling (Audio Video Interleaved), de standaard Windows-video-/audio-indeling. Een AVI-clip is een reeks bitmapframes, zoals een film.

Animatiebesturingselementen kunnen alleen eenvoudige AVI-clips afspelen. De clips die moeten worden afgespeeld door een animatie-besturingselement, moeten aan de volgende vereisten voldoen:

  • Er moet precies één videostream zijn en er moet ten minste één frame zijn.

  • Er kunnen maximaal twee streams in het bestand zijn (meestal de andere stream, indien aanwezig, is een audiostream, hoewel het animatie-besturingselement audiogegevens negeert).

  • De clip moet worden gedecomprimeerd of gecomprimeerd met RLE8-compressie.

  • Er zijn geen paletwijzigingen toegestaan in de videostream.

U kunt de AVI-clip toevoegen aan uw toepassing als een AVI-resource, of het kan uw toepassing als een afzonderlijk AVI-bestand begeleiden.

Omdat uw thread blijft uitvoeren terwijl de AVI-clip wordt weergegeven, is een veelvoorkomend gebruik voor een animatiebesturingselement het aangeven van systeemactiviteit tijdens een lange bewerking. In het dialoogvenster Zoeken van Verkenner wordt bijvoorbeeld een zwevend vergrootglas weergegeven terwijl het systeem zoekt naar een bestand.

Als u een CAnimateCtrl object maakt in een dialoogvenster of vanuit een dialoogvensterresource met behulp van de dialoogvenstereditor, wordt het automatisch vernietigd wanneer de gebruiker het dialoogvenster sluit.

Als u een CAnimateCtrl object in een venster maakt, moet u het mogelijk vernietigen. Als u het CAnimateCtrl object op de stapel maakt, wordt het automatisch vernietigd. Als u het CAnimateCtrl object op de heap maakt met behulp van de new functie, moet u het object aanroepen delete om het te vernietigen. Als u een nieuwe klasse hebt afgeleid van CAnimateCtrl en geheugen in die klasse toewijst, overschrijft u destructor CAnimateCtrl om de toewijzingen te verwijderen.

Zie Besturingselementen en CAnimateCtrl gebruiken voor meer informatie over het gebruikCAnimateCtrl.

Overnamehiërarchie

CObject

CCmdTarget

CWnd

CAnimateCtrl

Requirements

Koptekst: afxcmn.h

CAnimateCtrl::CAnimateCtrl

Maakt een CAnimateCtrl object.

CAnimateCtrl();

Opmerkingen

U moet de functie Lid maken aanroepen voordat u andere bewerkingen kunt uitvoeren op het object dat u maakt.

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

Hiermee sluit u de AVI-clip die eerder is geopend in het animatie-besturingselement (indien aanwezig) en verwijdert u deze uit het geheugen.

BOOL Close();

Retourwaarde

Niet-nul indien geslaagd; anders nul.

Example

Zie het voorbeeld voor CAnimateCtrl::CAnimateCtrl.

CAnimateCtrl::Maken

Hiermee maakt u een animatie-besturingselement en koppelt u dit aan een CAnimateCtrl object.

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

Parameterwaarden

dwStyle-
Hiermee geeft u de stijl van het animatie-besturingselement op. Pas een willekeurige combinatie van de vensterstijlen toe die worden beschreven in de sectie Opmerkingen hieronder en de animatiebesturingsstijlen die worden beschreven in Animatiebesturingsstijlen in de Windows SDK.

Rect
Hiermee geeft u de positie en grootte van het animatie-besturingselement op. Het kan een CRect-object of een RECT-structuur zijn.

pParentWnd
Hiermee geeft u het bovenliggende venster van het animatie-besturingselement, meestal een CDialog. Deze mag niet NULL zijn.

nID-
Hiermee geeft u de id van het animatie-besturingselement op.

Retourwaarde

Niet-nul indien geslaagd; anders nul.

Opmerkingen

U maakt een CAnimateCtrl in twee stappen. Roep eerst de constructor aan en roep Createvervolgens het animatie-besturingselement aan en koppel het aan het CAnimateCtrl object.

Pas de volgende vensterstijlen toe op een animatie-besturingselement.

  • altijd WS_CHILD

  • WS_VISIBLE meestal

  • WS_DISABLED zelden

Als u uitgebreide vensterstijlen wilt gebruiken met het animatie-besturingselement, roept u CreateEx aan in plaats van Create.

Naast de hierboven genoemde vensterstijlen kunt u een of meer van de stijlen voor animatiebeheer toepassen op een animatie-besturingselement. Zie de Windows SDK voor meer informatie over animatiebesturingsstijlen.

Example

Zie het voorbeeld voor CAnimateCtrl::CAnimateCtrl.

CAnimateCtrl::CreateEx

Hiermee maakt u een besturingselement (een onderliggend venster) en koppelt u dit aan het CAnimateCtrl object.

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

Parameterwaarden

dwExStyle
Hiermee geeft u de uitgebreide stijl van het besturingselement dat wordt gemaakt. Zie de dwExStyle-parameter voor CreateWindowEx in de Windows SDK voor een lijst met uitgebreide Windows-stijlen.

dwStyle-
Hiermee geeft u de stijl van het animatie-besturingselement op. Pas een willekeurige combinatie van de stijlen voor venster- en animatiebeheer toe die worden beschreven in animatiebesturingsstijlen in de Windows SDK.

Rect
Een verwijzing naar een RECT-structuur die de grootte en positie van het venster beschrijft dat moet worden gemaakt, in clientcoördinaten van pParentWnd.

pParentWnd
Een aanwijzer naar het venster dat het bovenliggende besturingselement is.

nID-
De id van het onderliggende venster van het besturingselement.

Retourwaarde

Niet-nul indien geslaagd; anders 0.

Opmerkingen

Gebruik CreateEx in plaats van Maken om uitgebreide Windows-stijlen toe te passen, die zijn opgegeven door het voorwoord van de uitgebreide stijl van Windows WS_EX_.

CAnimateCtrl::IsPlaying

Geeft aan of een Audio-Video Avi-clip (Interleaved) wordt afgespeeld.

BOOL IsPlaying() const;

Retourwaarde

WAAR als een AVI-clip wordt afgespeeld; anders, ONWAAR.

Opmerkingen

Met deze methode wordt het ACM_ISPLAYING bericht verzonden, dat wordt beschreven in de Windows SDK.

CAnimateCtrl::Open

Roep deze functie aan om een AVI-clip te openen en het eerste frame weer te geven.

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

Parameterwaarden

lpszFileName
Een CString object of een aanwijzer naar een null-beëindigde tekenreeks die de naam van het AVI-bestand of de naam van een AVI-resource bevat. Als deze parameter NULL is, sluit het systeem de AVI-clip die eerder is geopend voor het animatie-besturingselement, indien van toepassing.

nID-
De AVI-resource-id. Als deze parameter NULL is, sluit het systeem de AVI-clip die eerder is geopend voor het animatie-besturingselement, indien van toepassing.

Retourwaarde

Niet-nul indien geslaagd; anders nul.

Opmerkingen

De AVI-resource wordt geladen vanuit de module die het animatie-besturingselement heeft gemaakt.

Open ondersteunt geen geluid in een AVI-clip; u kunt alleen stille AVI-clips openen.

Als het animatie-besturingselement de ACS_AUTOPLAY stijl heeft, wordt het animatie-besturingselement automatisch gestart met het afspelen van de clip direct nadat deze is geopend. De clip blijft op de achtergrond afspelen terwijl de thread wordt uitgevoerd. Wanneer de clip is afgespeeld, wordt deze automatisch herhaald.

Als het animatie-besturingselement de ACS_CENTER stijl heeft, wordt de AVI-clip gecentreerd in het besturingselement en verandert de grootte van het besturingselement niet. Als het animatie-besturingselement niet de ACS_CENTER stijl heeft, wordt het formaat van het besturingselement gewijzigd wanneer de AVI-clip wordt geopend tot de grootte van de afbeeldingen in de AVI-clip. De positie van de linkerbovenhoek van het besturingselement verandert niet, alleen de grootte van het besturingselement.

Als het animatie-besturingselement de ACS_TRANSPARENT stijl heeft, wordt het eerste frame getekend met een transparante achtergrond in plaats van de achtergrondkleur die is opgegeven in de animatieclip.

Example

Zie het voorbeeld voor CAnimateCtrl::CAnimateCtrl.

CAnimateCtrl::P lay

Roep deze functie aan om een AVI-clip af te spelen in een animatie-besturingselement.

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

Parameterwaarden

nVan
Op nul gebaseerde index van het frame waar het afspelen begint. De waarde moet kleiner zijn dan 65.536. Een waarde van 0 betekent dat u begint met het eerste frame in de AVI-clip.

nTo
Op nul gebaseerde index van het frame waar het afspelen eindigt. De waarde moet kleiner zijn dan 65.536. Een waarde van - 1 betekent eindigen met het laatste frame in de AVI-clip.

nRep
Aantal keren om de AVI-clip opnieuw af te spelen. Een waarde van - 1 betekent dat het bestand voor onbepaalde tijd opnieuw wordt afgespeeld.

Retourwaarde

Niet-nul indien geslaagd; anders nul.

Opmerkingen

Het animatiebesturingselement speelt de clip op de achtergrond af terwijl de thread wordt uitgevoerd. Als het animatie-besturingselement stijl heeft ACS_TRANSPARENT , wordt de AVI-clip afgespeeld met een transparante achtergrond in plaats van de achtergrondkleur die is opgegeven in de animatieclip.

Example

Zie het voorbeeld voor CAnimateCtrl::CAnimateCtrl.

CAnimateCtrl::Seek

Roep deze functie aan om een enkel frame van uw AVI-clip statisch weer te geven.

BOOL Seek(UINT nTo);

Parameterwaarden

nTo
Op nul gebaseerde index van het frame dat moet worden weergegeven. De waarde moet kleiner zijn dan 65.536. Een waarde van 0 betekent dat het eerste frame in de AVI-clip wordt weergegeven. Een waarde van -1 betekent dat het laatste frame in de AVI-clip wordt weergegeven.

Retourwaarde

Niet-nul indien geslaagd; anders nul.

Opmerkingen

Als het animatie-besturingselement stijl heeft ACS_TRANSPARENT , wordt de AVI-clip getekend met een transparante achtergrond in plaats van de achtergrondkleur die is opgegeven in de animatieclip.

Example

Zie het voorbeeld voor CAnimateCtrl::CAnimateCtrl.

CAnimateCtrl::Stop

Roep deze functie aan om te stoppen met het afspelen van een AVI-clip in een animatie-besturingselement.

BOOL Stop();

Retourwaarde

Niet-nul indien geslaagd; anders nul.

Example

Zie het voorbeeld voor CAnimateCtrl::CAnimateCtrl.

Zie ook

CWnd-klasse
Hiërarchiegrafiek
CAnimateCtrl::Maken
ON_CONTROL