单文档多视图,获取CFormView控件的DC?

gxxtjy 2015-04-20 11:09:59
请教下各位大侠:
我用VS2010编写了一个基于单文档多视图的程序框架,其中的一个视图类为CFormVIew类,我在这个视图上加了一个图像控件(IDC_PIC),我在CFormView类的Create函数中,想要获得图像控件的DC,在Create函数中加了这么一句:
CDC* m_picDC=GetDlgItem(IDC_PIC)->GetDC();
程序编译无错,不能运行!但是我在其它视图中,首先获取CFormView的指针,然后获取该控件的DC,
pTestView1->GetDlgItem(IDC_PIC)->GetDC(); // pTestView1为CFormView的指针
程序可以正确的运行!哪位能帮忙分析下原因,这个跟Create函数有什么关系呢?
...全文
154 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2015-05-20
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
Geek___ 2015-04-20
  • 打赏
  • 举报
回复
这个是顺序问题,因为在调用Create函数的时候,这个控件还没有存在,当然出错了。 你把CDC* m_picDC=GetDlgItem(IDC_PIC)->GetDC();放到OnInitialUpdate()里就可以了。

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧