读书人

MFC播发视频

发布时间: 2013-09-12 22:07:00 作者: rapoo

MFC播放视频
用MFC单文档应用程序,希望打开的视频可以在View中播放,播放功能已经实现,但是在播放的时候无法点击其他菜单项,所以想要将播放视频的部分新开一个线程,这样在播放视频的时候,其他菜单项也是可以操作的,哪位大侠给个思路,这个线程函数该怎么写?我的开发环境是VS2008和OpenCV2.4.6,自己添加了CvvImage类。播放视频的时候用的是如下的代码
void CMYView::OnDraw(CDC* pDC)
{
CMYD406Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
HDC hDC = pDC->GetSafeHdc();
CString szPath = pDoc->szPath;//视频存储路径
CvCapture* capture = cvCreateFileCapture(szPath);
CvvImage img;
IplImage* frame;
while (1)
{
frame = cvQueryFrame(capture);
if (!frame) break;
img.CopyOf(frame);
CRect rect(1,1,img.Width(),img.Height());
img.DrawToHDC(hDC,&rect);
char c = cvWaitKey(33);
if(c==27) break;
}
}
如何在CMYView中添加一个成员函数(线程函数),实现播放功能
[解决办法]
如果你不用线程,你可以这么做:
while (1)
{
frame = cvQueryFrame(capture);
if (!frame) break;
img.CopyOf(frame);
CRect rect(1,1,img.Width(),img.Height());
img.DrawToHDC(hDC,&rect);
char c = cvWaitKey(33);
if(c==27) break;

if (PeekMessage (&msg, NULL, 0, 0, PM_REMOVE))//加这几句
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
}

读书人网 >VC/MFC

热点推荐