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()的时候开始调用的么
展开
 我来答
bhtzu
2014-09-19 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4228万
展开全部
OnInitDialog之后,会默认调用Invalidate函数,触发重绘。如果你没有在OnPaint里面绘制,那么必然不显示。

任何希望一直显示的图片,必须在OnPaint里面完成绘制才可以。
追问
这个应该怎么改正呢?问您下。是在添加OnPaint么?
追答
对,OnInitDialog中保留初始化部分,绘制在OnPaint里面做,这是最合理的方法。(当然,你也可以都放到OnPaint里面,注意这里是被频繁调用的即可)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式