在对话框内绘图为什么要用OnPaint()成员函数
arfu 2000-04-12 12:11:00 在vc技术内幕(清华)中,讲到:
“ 在对话框内绘图必须利用OnPaint()成员函数。”
为什么?有没有别的方法?
书中的例子程序:
void CAboutDlg::OnPaint()
{
CWnd* p=GetDlgItem(IDC_S);
CDC* c=p->GetDC();
p->Invalidate();
p->UpdateWindow();
c->SelectStockObject(BLACK_BRUSH);
c->Rectangle(0,0,10,10);
p->ReleaseDC(c);
}
MSDN中讲到:WM_PAINT在调用UpdateWindow或RedrawWindow时发出。
上面的代码中在OnPaint()中调用UpdateWindow()是不是有些矛盾?
调用了Invalidate()还需调用UpdateWindow()吗? 我搞不懂
我试着去掉UpdateWindow(),程序无法显示图形,为什么?
请大侠讲详细些! 非常感谢!