AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > VC编程

制作VC++应用程序的多媒体封面

51自学网 2015-08-30 http://www.wanshiok.com

  实现步骤

  假设我们已经通过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窗口。

 
 
说明
:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。

上一篇:VC++实现工具条上的标准控件动态添加  下一篇:深入MDI客户窗口编程