Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
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
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