建了一个对话框。
然后重载onpaint函数
CDialog::OnPaint();
CWnd* pWnd = GetDlgItem(IDC_STATIC1);//IDC_STATIC1是按扭的ID
    CDC* pDC = pWnd->GetDC();
    pWnd->Invalidate();  //??????????
    pWnd->UpdateWindow(); //????????????
    pDC->SelectStockObject(BLACK_BRUSH);
    pDC->Rectangle(0,0,10,10);
    pWnd->ReleaseDC(pDC);

如果把CDialog::OnPaint()函数去了运行。就会看到不停的闪烁。不知道为什么?
然后小弟在OnPaint前声明一个全局变量:
int xTime = 0;
OnPaint里边
xTime ++;
然后重载OnCancel,加入下面代码:
CString str;
str.Format("OnPaint ran %d times!", xTime);
AfxMessageBox(str);
CDialog::OnCancel();发现如果CDialog::OnPaint()不去掉的话。就运行一次xTime就是1
如果去了。xTime就不是1。
我不知道其中的道理是什么。。郁闷。。
大家集思广益。。来想想。如果哪个高手知道的话请指点迷精。。