设为首页 加入收藏

TOP

制作VC++应用程序的多媒体封面 (二)
2012-11-04 15:29:05 来源: 作者: 【 】 浏览:424
Tags:制作 应用程序 多媒体 封面
  实现步骤

  假设我们已经通过MFC AppWizard(EXE)建立了一个名为Example的工程,则该应用至少包含有CExampleApp、CMainFrame、CExampleView三个类。

  下面我们给这个应用加入多媒体封面,具体实现步骤如下:

  1.编辑Stdafx.h

  在Stdafx.h中放入包含文件可以使用预编译头文件中的所有多媒体信息。由于项目中的每一个文件已经包括了Stdafx.h,所以在其它地方不必包含这些多媒体文件。在Stdafx.h中放入包含文件可以使用预编译头文件中的所有多媒体信息。由于项目中的每一个文件已经包括了Stdafx.h,所以在其它地方不必包含这些多媒体文件。

#include<afxwin.h> //MFC core and standard

components

#include<afxext.h> //MFC extensions

#include<vfw.h>

#pragma comment(lib,"vfw32.lib")

  2.编辑CExampleApp::InitInstance()

  注册MCIWnd窗口类,打开MCIWnd窗口,并播放AVI文件,最后关闭MCIWnd窗口,然后开始应用程序的常规初始化。

BOOL CExampleApp::InitInstance()

{

if(!MCIWndRegisterClass()) //注册MCIWnd窗口类

return FALSE;

HWNDm_hAVI //定义一个播放AVI文件的窗口句柄

m_hAVI=MCIWndCreate(NULL,AfxGetInstanceHandle(),

MCIWNDF_NOPLAYBAR|

WS_VISIBLE|

WS_POPUT,

NULL); //创建MCIWnd窗口

if(m_hAVI=NULL)

return FALSE;

constCString filename="d:\\zhp\\example.avi" //AVI文件名

if(filename.GetLength()>0)

{

MCIWndOpen(m_hAVI,(LPCSTR)filename,0); //打开设备文件

if(MCIWndUseTime(m_haAVI)!=0)

//设置MCI时间格式

return FALSE;

long PlayTime=MCIWndGetLength(m_hAVI);

//获得AVI文件的播放时间长度

MCIWndPlay(m_hAVI); //播放AVI影视文件

::Sleep(PlayTime); //进程休眠

MCIWndDestroy(m_hAVI); //关闭MCI窗口

}

//开始常规初始化

#ifdef_AFXDLL

Enable3dControls(); //Call this when using MFC in a shared DLL

#else

Enable3dControlsStatic(); //Call this when linking to MFC statically

#endif

……

}

  由于Windows系统是多任务、多进程并行的,因此要让InitialInstance进程休眠,等待M CIWndPlay进程播放AVI文件结束后才能继续执行InitialInstance进程,否则系统将在播放A VI影视的同时执行应用程序的初始化,不能达到动画封面效果。在以上代码中,阴影部分的程序段的功能就是获得AVI文件播放时间长度PlayTime,然后使用::Sleep()函数让进程休眠Pl ayTime毫秒后关闭MCIWnd窗口。

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Windows 9X硬件中断设备驱动程序.. 下一篇深入MDI客户窗口编程

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: