实现步骤 假设我们已经通过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不保证资料的完整性。
2/2 首页 上一页 1 2 |