本人用mci的方式显示avi视频,程序如下
void CSD10_4View::OnFileOpen() 
{
// TODO: Add your command handler code here
if(m_hwndMCIWnd!=NULL)
MCIWndDestroy(m_hwndMCIWnd);
m_hwndMCIWnd=NULL;
CString filename; static char szFilter[]="AVI文件(*.avi)|*.avi||";
CFileDialog dlg(TRUE,"avi",NULL, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
szFilter);
if(dlg.DoModal()==IDOK)
{
filename=dlg.GetPathName();

if(m_hwndMCIWnd!=NULL)
MCIWndDestroy(m_hwndMCIWnd);

else
{
HINSTANCE hInstance=AfxGetInstanceHandle();
m_hwndMCIWnd=MCIWndCreate(m_hWnd,
hInstance,
MCIWNDF_SHOWALL|MCIWNDF_SHOWPOS|MCIWNDF_SHOWNAME,
filename);
}

}
}
执行后可以动态显示avi视频,现想在avi视频的显示区域上面绘制一个方框,我在视类的ondraw函数中加入了如下程序
void CSD10_4View::OnDraw(CDC* pDC)
{
CSD10_4Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
if(m_hwndMCIWnd!=NULL)
{
CWnd *pwnd=(CWnd *)GetParentFrame();
CDC *pdc=pwnd->GetDC();
POINT point1,point2;
CPen pen;
pen.CreatePen(PS_SOLID,2,RGB(100,100,100));
point1.x=400;
point1.y=100;
point2.x=300;
point2.y=300;
//CRect rect(point1,point2);
//pdc->Rectangle(rect);
pdc->MoveTo(point1);
pdc->LineTo(point2);
pwnd->ReleaseDC(pdc);
}
}执行程序后当avi文件play时,所显示的直线被视频显示区域覆盖掉了,请教大侠如何解决这个问题。谢谢!