问题描述
- 怎么获取指定View的CDC
-
我有两个view(View1和View2),我想在View2里的按钮点击事件中调用View1的OnDraw,可是这个OnDraw需要一个CDC的输入参数。怎么获取这个CDC?我随便Get一个倒是可以调用,但是在View1的OnDraw中获取CRect就中断,怎么回事?上代码
view2中:void View2::OnBnClickedButton4() { View1 center; CDC *m_pDC; m_pDC=GetDC(); center.OnDraw(m_pDC); }
View1中:
void ViewCenter::OnDraw(CDC* pDC) { CRect rectClient; GetClientRect(rectClient); TRACE("onDrawn"); }
如果去掉CRect这事,点击几下就输出几条“OnDraw”,正常,但是一加上Rect就中断。我因为要在View2中点击重绘View1,所以还必须解决这个问题。
解决方案
ViewCenter就是View1
解决方案二:
不要直接调用View类的OnDraw函数,可以调用InvalidateRect/Invalidate()来刷新。
时间: 2024-09-17 16:25:28