mfc-MFC程序运行后按键响应的问题

问题描述

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线程播放试试。

时间: 2024-09-08 11:11:40

mfc-MFC程序运行后按键响应的问题的相关文章

iostream-为什么我这个c++程序运行后直接关掉了窗口,就是应该运行出来了,但是还没来得及看结果就被自动关了

问题描述 为什么我这个c++程序运行后直接关掉了窗口,就是应该运行出来了,但是还没来得及看结果就被自动关了 程序代码如下: #include "stdafx.h" #include #include using namespace std; int _tmain(int argc, _TCHAR* argv[]) { double daphne = 100.0; double cleo = 100.0; const double rate_1 = 0.1; const double r

启动-程序运行后自动关闭,在dos下出现这个错?

问题描述 程序运行后自动关闭,在dos下出现这个错? Exception:System.IO.FileLoadException: Could not load file or assembly 'SharpSvn.dll' or one of its dependencies. 由于应用程序配置不正确,应用程序未能启动.重新安装应用程序可能会纠正这个问题. (Exception from HRESULT: 0x800736B1) File name: 'SharpSvn.dll' 解决方案 S

contextmenu-android程序运行后长按不弹出菜单,找不到原因。

问题描述 android程序运行后长按不弹出菜单,找不到原因. public class Chan_List extends ListActivity { private ScanActivity sActivity = null; private static final String TAG = "RCU"; private SimpleAdapter listAdapter = null; private MobileControl mControl=null; private

android-Android程序运行后非常卡怎么回事?

问题描述 Android程序运行后非常卡怎么回事? Android程序运行后非常卡怎么回事? Android程序运行后非常卡怎么回事? 解决方案 解决方案二: 原因可能是: 1)你的设备配置太低 2)你的程序实现有问题,占用 CPU 太多 解决方案三: 可能是程序问题,换个机器试试,如果是模拟器运行的话,可能是电脑配置问题, 解决方案四: 1,你的手机配置低 2. 你的程序垃圾代码太多,或者逻辑太复杂,线程太多等等 解决方案五: 卡顿原因很多啊,建议看看性能优化,推荐给你一个网址 http://

跪求 帮忙-VC++6.0 环境下,怎么能够使程序运行后的黑框直接变成全屏显示

问题描述 VC++6.0 环境下,怎么能够使程序运行后的黑框直接变成全屏显示 VC++6.0 环境下,win32 console application下编一个什么样的程序能够使输出的黑框变成全屏?例如 #include main() { printf("你好n"); } 这个简单程序中添加上哪些代码就能够使输出的黑框直接占满整个电脑屏幕?麻烦哪位大侠给帮个忙,并把修改后的完整程序附上,小弟不胜感激!

test- 以下程序运行后的打印结果是______(需要写上分析思路)

问题描述 以下程序运行后的打印结果是______(需要写上分析思路) #include int sum(int a, int b) { return a + b; } int two(int n) { return n * 2; } void test(int n) { printf("%dn", two(n)); } int main() { test( sum(10, 11) ); return 0; } 解决方案 sum(10, 11) 得到21 test输出 two(21),2

菜鸟问题 如何让程序运行后 自动退出

问题描述 本人是刚学C#的小菜鸟请问用什么语句和方法让程序执行完一些操作后自动关闭自己谢谢!线上等 解决方案 解决方案二:this.Close();解决方案三:如果没有涉及到多线程,Console的main执行完后就退出了,WinForm的可以用Application.Exit();多线程的大概需要先让线程Abort才能让整个程序退出解决方案四:Application.Exist();解决方案五:TIMER控件,设置时间再Application.Exit();解决方案六:引用2楼ivorstar

程序运行后呈现这样的错误?请大家帮帮忙!

问题描述 请大家帮帮忙,这是什么问题?很长时间也没弄明白?java.lang.reflect.InvocationTargetExceptionsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)sun.reflect.DelegatingMethodAccessorImpl.in

请问该程序运行后行数是几行?

问题描述 Publicclassexample{Publicstaticvoidmain(string[]args){inti,j;for(i=0,j=0;i+j<20;++i,j+=i)System.out.println(i+j)}}} 解决方案 解决方案二:packagetopics_390901331;publicclassexample{publicstaticvoidmain(String[]args){inti,j;for(i=0,j=0;i+j<20;++i,j+=i){Sys