如何实现在一个视图中刷新另一个子视图?

ouyangzhongwen 2013-01-24 05:30:50
问题是这样的:MDI应用程序中,类间的关系
CFormView 中我想嵌用一个CPicView m_picview(继承于CScrollView)来展示图片;
如何在CFormView的OnDraw里去调用CPicView的OnDraw去显示图片?
class CMyView : public CFormView
{
public:
CPicView * pPicView;
CMyDoc* GetDocument() const;
…………
protected:
virtual void OnDraw(CDC* /*pDC*/);
}
class CPicView:public CScrollView
{
public:
CPicture *pic;
***
protected:
virtual void OnDraw(CDC* pDC);
}

当我打开一幅图片时,document类加载图片保存为CPicture *,通过CMyView的GetDocument()后可以获得将显示的图片的指针,在CMyView类中的OnInitialUpdate()中创建的CPicView。怎么样才能让CPicView显示图片呢??
我在CMyView的Ondraw里调用CPicView的invalidate(),不能触发CPicView的OnDraw()!
...全文
225 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ouyangzhongwen 2013-01-24
  • 打赏
  • 举报
回复
引用 3 楼 sha_jinhao 的回复:
// Invalidate window so entire client area // is redrawn when UpdateWindow is called. CPicView->Invalidate(); // Update Window to cause View to redraw. CPicView-> Up……
谢谢,成功了,能够触发ondraw了。 谢谢!
jimette 2013-01-24
  • 打赏
  • 举报
回复
// Invalidate window so entire client area // is redrawn when UpdateWindow is called. CPicView->Invalidate(); // Update Window to cause View to redraw. CPicView-> UpdateWindow();
ouyangzhongwen 2013-01-24
  • 打赏
  • 举报
回复
引用 1 楼 sha_jinhao 的回复:
CPicView->invalidate()

void CMyView::OnDraw(CDC* /*pDC*/)
{
	// TODO: 在此添加专用代码和/或调用基类
	picview->invalidate();
}
如上所示,我跟踪过,这里会执行,但是invalidate并没有使CPicView中的OnDraw函数执行,求解释!!
jimette 2013-01-24
  • 打赏
  • 举报
回复
CPicView->invalidate()

15,979

社区成员

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

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