问题描述
- MFC程序运行后按键响应的问题
-
写的是一个类似视频播放功能的程序(现在写的这段只要具备这个功能,后期还要加上图像处理,暂且就当是个播放器吧)按下start后,读入视频,是使用opencv的,在按键响应的代码块里,代码如下:
std::string videoFile = "d:/123.mp4";
cv::VideoCapture capture;
capture.open(videoFile);
if (!capture.isOpened()){
MessageBox("capture is not opened");
}
cv::Mat frame; //每一帧的图像
long frameNo = 0;
while (capture.read(frame)){
frameNo++; //记录帧数
IplImage ImgForShow = frame;
IplImage* pShow = &ImgForShow;
DrawPicToHDC(pShow, IDC_STATIC2); //IDC_STATIC2是用于显示的控件
}DrawPicToHDC函数应该没什么问题,图片都能正常显示,需要的话我再贴吧,篇幅不够 问题:按下start的按键后,视频正常播放,但是在播放完成前,任何按键都无法响应。而我需要做一个暂停、停止的按键。怎么让他响应一下?
解决方案
http://www.pudn.com/downloads267/sourcecode/graph/opencv/detail1224377.html
解决方案二:
http://blog.chinaunix.net/uid-21580777-id-436739.html
http://www.cnblogs.com/huangweilin/archive/2012/05/18/2507764.html
解决方案三:
播放不要放主线程,以免阻塞Ui线程,开个线程播放。
解决方案四:
另外创建一个UI线程播放试试。