MCI编程简介
mci是windows 95提供的一组处理多媒体的接口,它不属于VC++,所以在编程的
时候只是向Windows提供调用参数就行。这样吧,我把我原来编的一段mci程序贴出
来作个样例,需要指明的是:1.该段程序是用在CWinApp类对象的InitInstance()里
的,作用是在程序执行前放一段.avi影片,原来的程序是《计算机世界》上刊登的,
我做了修改,使其可以在屏幕的任何位置出现在窗口的最顶层。2.在VC++5.0中提供
动画控制及操纵MCI的类,利用它可以很方便的实现你的要求(一般不需要象我那样
复杂的去编程)。
例:
AfxEnableControlContainer();
HDC hIC=::CreateIC("DISPLAY","","",NULL);
UINT x=GetDeviceCaps(hIC,HORZRES);
UINT y=GetDeviceCaps(hIC,VERTRES);
HINSTANCE hInstance=AfxGetInstanceHandle();
if (!MCIWndRegisterClass())
return FALSE;
HWND m_hAVI;
m_hAVI=CreateWindowEx(WS_EX_TOPMOST,MCIWND_WINDOW_CLASS,NULL,
WS_POPUP|WS_VISIBLE|MCIWNDF_NOPLAYBAR,
x/2-50,y/2-50,
CW_USEDEFAULT,CW_USEDEFAULT,
NULL,NULL,hInstance,NULL);
if(m_hAVI==NULL)
return FALSE;
const CString filename="d:\\evaluate\\blood.avi";
if(filename.GetLength()>0)
{
MCIWndOpen(m_hAVI,(LPCSTR)filename,0);
if (MCIWndUseTime(m_hAVI)!=0)
return FALSE;
long PlayTime=MCIWndGetLength(m_hAVI);
MCIWndPlay(m_hAVI);
::Sleep(PlayTime);
MCIWndDestroy(m_hAVI);
}