OnDraw()函数问题

来源:百度知道 编辑:UC知道 时间:2024/06/28 07:50:31
在矢量图形系统中,各种图形元素画上去之后,呈黑色状态,本来应该调用OnDraw函数绘制图形,代码:
void CDrawView::OnDraw(CDC* pDC)
{
CDrawDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
pDoc->Draw(pDC,0,0,m_bColor);
}
void CDrawDoc::Draw(CDC* pDC,int m_DrawMode,int m_DrawModel,short BackColor)
{
for(int i=0;i<=8;i++)
{
int nn=GetGraphUpperBound(i)+1;
while(nn--)
GetGraph(i,nn)->Draw(pDC,m_DrawMode,m_DrawModel,BackColor);
}
},是相关的代码,看起来是没错的,高手们看下,也可以给我提个另外的建议。书上说当窗口的完整性被破坏是会发出窗口消息,由CView()调用OnDraw()函数。究竟什么动作会造成这种效果?绘制图形吗?

OnDraw是窗口重绘,也就是WM_PAINT消息产生时,由OnPaint()函数调用的,窗口重绘情况很多。在窗口尺寸发生变化会出现,也可以人为设置等等。绘制图形不会发生重绘,除非你认为设置。

在CView类调用InValidate()就可以破环窗口导致重绘