有关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”关闭窗口,这是怎么回事啊??????
窗口能响应才怪了,你这个函数写在按钮响应中,而窗口的消息响应(比如移动窗口、关闭窗口)都必须等按钮消息处理完成后才能响应,而你这个函数一直没有返回,当然程序就得死在这儿等待了。 你要想不出现这种情况,应该把你的这些代码放到一个专门的辅助线程来完成,以免阻塞主线程。
答:这样你只删除了new ScreenStruct[10]的第一个结构体,要用个for循环,挨个删除。要不试试delete []p_Screen,也行详情>>
答:桌面图标是无法自动得到,因为图标的存在与否应用程序无法知道。 如果你确认在桌面上可能会有这个图标,那么你只要遍历桌面所有的图标,然后把指向该应用程序的图标都更改...详情>>