CAnimateCtrl:
Mfc中的动画控件和WIN32中的是一样的(本来就是封装win32嘛),它只支持avi格式的动画,据我所知。
下面我们来实现动画控件创建和简单操作:(open.close.seek…)
1. 创建动画控件:
在view类中添加变量:CAnimateCtrl m_AnimateCtrl;
在view类的OnCreate消息里处理创建:
m_AnimateCtrl.Create(WS_CHILD|WS_BORDER|WS_VISIBLE|ACS_AUTOPLAY ,CRect(750,70,900,200),this,9);
为了对操作进行处理,我们添加几个菜单项(当然也可以是按键消息或者按钮消息):
void CMyView::OnAnimatectrlOpen()
{
// TODO: 在此添加命令处理程序代码
if (!m_AnimateCtrl.Open("11.avi"))
{
MessageBox("failed to open avi media");
return;
}
}
void CMyView::OnAnimatectrlPlay()
{
// TODO: 在此添加命令处理程序代码
if (!m_AnimateCtrl.Play(0,-1,-1))
{
MessageBox("failed to play avi");
return;
}
m_AnimateCtrl.RedrawWindow();
}
void CMyView::OnAnimatectrlSeek()
{
// TODO: 在此添加命令处理程序代码
if (!m_AnimateCtrl.Seek(0))
{
MessageBox("failed to seek");
return;
}
m_AnimateCtrl.RedrawWindow();
}
void CMyView::OnAnimatectrlStop()
{
// TODO: 在此添加命令处理程序代码
if (!m_AnimateCtrl.Stop())
{
MessageBox("failed to stop");
return;
}
}
void CMyView::OnAnimatectrlClose()
{
// TODO: 在此添加命令处理程序代码
if (!m_AnimateCtrl.Close())
{
MessageBox("failed to close");
return;
}
}
Ok,一切搞定,记住把要用到的AVI文件放到项目当前运行路径下,据我所知,这个avi文件要求足够的小,否则无法打开。运行一下试试吧。