更新时间:2024-01-02 23:31
Animation控件允许你创建显示动画的按钮,如点击一个按钮播放一个.avi文件。该控件只能播放没有声音的.avi文件,并且Animation控件只能播放解压缩的或使用RLE(行程长度编码,Run-Length Encoding)压缩的.avi文件。
如果试图加载包含声音的.avi文件或该控件不支持的格式,将返回一个错误(错误码35752)。该控件的一个例子是Windows 95中的文件拷贝过程。该过程在拷贝时使用了一个Animation控件,显示了一个文件从一个文件夹飞入另一个文件夹。
AutoPlay属性,BackStyle属性(Animation控件),Center属性,Height,Width属性,TableIndex属性,DragIcon属性,DragMode属性,hWnd属性,TabStop属性,HelpContextID属性,Name属性,Parent属性,Container属性,ToolTipText属性,WhatsThisHelpID属性,OLEDropMode属性(ActiveX控件),Height,Width属性(ActiveX控件),Index属性(ActiveX控件),Left,Top属性(ActiveX控件),Tag属性(ActiveX控件),Visible属性(ActiveX控件),Object属性(ActiveX控件),BackColor,ForeColor属性(ActiveX控件),Enabled属性(ActiveX控件),hWnd属性(ActiveX控件)。
Close方法(Animation控件),Open方法(Animation控件),Play方法,Stop方法(Animation控件),SetFocus方法,Drag方法,Move方法,ZOrder方法,ShowWhatsThis方法,OLEDrag方法(ActiveX控件)。
DragDrop事件,DragOver事件,GotFocus事件,LostFocus事件,MouseDown事件,MouseUp事件,MouseMove事件,Validate事件,OLECompleteDrag事件(ActiveX控件),OLEDragDrop事件(ActiveX控件),OLEDragOver事件(ActiveX控件),OLEGiveFeedBack事件(ActiveX控件),OLESetData事件(ActiveX控件),OLEStartDrag事件(ActiveX控件),Click事件(ActiveX控件),DblClick事件(ActiveX控件)。
#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.
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, -1, -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(-1))
return false;
cAnimCtrl.RedrawWindow();
break;
}
TranslateMessage(&msg);
DispatchMessage(&msg);
}
cAnimCtrl.Stop();
cAnimCtrl.Close();
return true;
}
摘自MSDN