mfc中用opencv在另一对话框显示图片
我新建了一个对话框,想把图片显示在那个对话框里,我在主对话框里的一个按键相应函数里用showdg;//show是我新建的对话框类dg.DoModal();再在新建的对话框...
我新建了一个对话框,想把图片显示在那个对话框里,我在主对话框里的一个按键相应函数里用
show dg; //show是我新建的对话框类
dg.DoModal();
再在新建的对话框的OnInitDialog() 下用
IplImage* ipl = cvLoadImage(mPath, 1 ); //mpah是文件路径
ShowImage( ipl,IDC_STATIC2);
cvReleaseImage( &ipl );
我断定追踪到这里,发现mpath也是有值的,不知为什么在运行的时候新建对话框的控件下还是什么都没有,,,不知道还有添加什么?还请多多指教...
下面是showimage函数:
ShowImage(IplImage* img, UINT ID)// ID 是Picture Control控件的ID号
{
CDC* pDC=GetDlgItem(ID)->GetDC();// 获得显示控件的 DC
HDC hDC=pDC->GetSafeHdc();// 获取 HDC(设备句柄) 来进行绘图操作
CRect rect;
GetDlgItem(ID)->GetClientRect(&rect);
CvvImage cimg;
cimg.CopyOf(img); // 复制图片
cimg.DrawToHDC(hDC,&rect);
ReleaseDC(pDC);
}
这个函数是没有问题的我在主对话框测试过 展开
show dg; //show是我新建的对话框类
dg.DoModal();
再在新建的对话框的OnInitDialog() 下用
IplImage* ipl = cvLoadImage(mPath, 1 ); //mpah是文件路径
ShowImage( ipl,IDC_STATIC2);
cvReleaseImage( &ipl );
我断定追踪到这里,发现mpath也是有值的,不知为什么在运行的时候新建对话框的控件下还是什么都没有,,,不知道还有添加什么?还请多多指教...
下面是showimage函数:
ShowImage(IplImage* img, UINT ID)// ID 是Picture Control控件的ID号
{
CDC* pDC=GetDlgItem(ID)->GetDC();// 获得显示控件的 DC
HDC hDC=pDC->GetSafeHdc();// 获取 HDC(设备句柄) 来进行绘图操作
CRect rect;
GetDlgItem(ID)->GetClientRect(&rect);
CvvImage cimg;
cimg.CopyOf(img); // 复制图片
cimg.DrawToHDC(hDC,&rect);
ReleaseDC(pDC);
}
这个函数是没有问题的我在主对话框测试过 展开
2个回答
展开全部
不会吧?类似的函数我也用过,没有出现您说的这种情况,而且新插入对话框的类有OnInitDialog函数吗?
楼主是不是写在主对话框里了?
我试验过了你的代码,
不管是模式对话框还是舞模式对话框,
都没有问题,可以执行!
楼主是不是写在主对话框里了?
我试验过了你的代码,
不管是模式对话框还是舞模式对话框,
都没有问题,可以执行!
追问
我是在新建对话框中加的oninitdialog函数,如果不添加这个函数怎样可以是达到我的目的?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看程序没什么问题啊。。。难道是IDC_STATIC2静态控件的问题?加上notify行不行?
或者是你的图片大小跟你的控件rect不匹配?
或者是你的图片大小跟你的控件rect不匹配?
更多追问追答
追问
应该不是rect的问题,cv它会自动让图片匹配控件,我在新建的对话框加过按键,加过相应函数用IDC_STATIC2都可以,应该不是这个问题,至于你说的加notify是什么意思??
追答
我帮你试了下,确实不行 ,我也没找出原因
但是如果把dlg换成非模态的就没有问题 完全可以显示
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询