MFC新建对话框的初始化已经添加了虚函数OnInitDialog()也添加了代码,为何不显示
我在第一个窗口中生成了一个新窗口的类简称是newDlg吧然后,newDlg.src==某个图片,这个是opencv的一些东东,就是赋值,然后newDlg.DoModal(...
我在第一个窗口中生成了一个新窗口的类 简称是 newDlg 吧 然后, newDlg.src == 某个图片 ,这个是opencv的一些东东,就是赋值,然后newDlg.DoModal(), 在新建窗口类中已经有了 iplimage * src这个类型,我在新窗口的.cpp文件中添加了OnInitDialog()并且添加了如下代码
CDC *pDC = GetDlgItem(IDC_SRC)->GetDC();
HDC hDC= pDC->GetSafeHdc();
CRect rect;
GetDlgItem(IDC_SRC)->GetClientRect(&rect);
CvvImage cimg; //只有CvvImage类的图像才有下面的DrawToHDC函数
cimg.CopyOf(src,3);
cimg.DrawToHDC(hDC,&rect);
ReleaseDC(pDC);
这个IDC_SRC 是piccontrol 但是为什么不显示啊。。 ?
OnInitDialog()是在DoModel()的时候开始调用的么 展开
CDC *pDC = GetDlgItem(IDC_SRC)->GetDC();
HDC hDC= pDC->GetSafeHdc();
CRect rect;
GetDlgItem(IDC_SRC)->GetClientRect(&rect);
CvvImage cimg; //只有CvvImage类的图像才有下面的DrawToHDC函数
cimg.CopyOf(src,3);
cimg.DrawToHDC(hDC,&rect);
ReleaseDC(pDC);
这个IDC_SRC 是piccontrol 但是为什么不显示啊。。 ?
OnInitDialog()是在DoModel()的时候开始调用的么 展开
1个回答
展开全部
OnInitDialog之后,会默认调用Invalidate函数,触发重绘。如果你没有在OnPaint里面歼笑绘制,那么必然不显示。
任何希望一直显示的图片枯仿,没改纤必须在OnPaint里面完成绘制才可以。
任何希望一直显示的图片枯仿,没改纤必须在OnPaint里面完成绘制才可以。
追问
这个应该怎么改正呢?问您下。是在添加OnPaint么?
追答
对,OnInitDialog中保留初始化部分,绘制在OnPaint里面做,这是最合理的方法。(当然,你也可以都放到OnPaint里面,注意这里是被频繁调用的即可)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询