Animation控件

更新时间: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

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}