OnDraw只有CView才有,其他窗口都是在OnPaint里画。
void CView::OnPaint()
{
// standard paint routine
CPaintDC dc(this);
OnPrepareDC(&dc);
OnDraw(&dc);
}
这是MFC的代码,说明对于CView类,OnPaint会调用用户自己写的虚函数OnDraw;但是如果用户自己重写了OnPaint,这段代码就执行不到了,自然OnDraw就没有人调用了。
所以一般情况下,在CView类里,没有必要响应WM_Paint,直接把OnDraw写好就是了。
void CView::OnPaint()
{
// standard paint routine
CPaintDC dc(this);
OnPrepareDC(&dc);
OnDraw(&dc);
}
这是MFC的代码,说明对于CView类,OnPaint会调用用户自己写的虚函数OnDraw;但是如果用户自己重写了OnPaint,这段代码就执行不到了,自然OnDraw就没有人调用了。
所以一般情况下,在CView类里,没有必要响应WM_Paint,直接把OnDraw写好就是了。