爱问知识人 爱问教育 医院库

有关opencv和MFC的问题。。。。

首页

有关opencv和MFC的问题。。。。

CWnd *pWnd=GetDlgItem(IDC_STATIC_PICTURE);//获取图片控件的对象的指针
  pdc=pWnd->GetDC();
  hdc=pdc->GetSafeHdc();
  CRect rect;
  pWnd->GetClientRect(&rect);
  CvCapture* fileCapture=cvCreateFileCapture("喜羊羊与灰太狼之开心闯龙年DVDscr中字.rmvb");
  IplImage *frame;
  
  CvvImage showimage;
  
  while(1)
  {
    frame=cvQueryFrame(fileCapture);
    if(!frame) break;

    showimage.CopyOf(frame,1);
    showimage.DrawToHDC(hdc,&rect);
    int a=cvWaitKey(20);
    if( a==27 )break;
  }
  //cvReleaseCapture(&fileCapture);
}

以上是一串MFC基于对话框编程的代码,写在响应按钮的函数中,运行后,可以将opencv函数获取的视频帧在MFC窗口中的图片控件上播放,但是此时整个窗口不能用鼠标移动,也不能点击“X”关闭窗口,这是怎么回事啊??????

提交回答
好评回答
  • 2012-09-08 10:24:12
    窗口能响应才怪了,你这个函数写在按钮响应中,而窗口的消息响应(比如移动窗口、关闭窗口)都必须等按钮消息处理完成后才能响应,而你这个函数一直没有返回,当然程序就得死在这儿等待了。
    你要想不出现这种情况,应该把你的这些代码放到一个专门的辅助线程来完成,以免阻塞主线程。

    1***

    2012-09-08 10:24:12

类似问题

换一换
  • VC++ 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...
最新问答 推荐信息 热门专题 热点推荐
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 181-200
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):