在一个VC静态控制上作图的问题
void CDDlg::OnPaint() //一个对话框类
{
if (IsIconic())
{
..........
}
else
{ CDialog::OnPaint();
CWnd *pWnd=GetDlgItem(IDC_SI); //IDC_SI为对话框上的一个静态控制
CDC *pDC=pWnd->GetDC();
pWnd->Invalidate();
pWnd->UpdateWindow();
pDC->SelectStockObject(BLACK_BRUSH);
pDC->Rectangle(0,0,10,10);
pWnd->ReleaseDC(pDC);
}
}
为何此时正常,在控制上能画一个黑矩形。而使用以下代码不行?
CDC *pDC=pWnd->GetDC();
pDC->SelectStockObject(BLACK_BRUSH);
pDC->Rectangle(0,0,10,10);
pWnd->Invalidate();
pWnd->UpdateWindow(); //把该两行放到画矩形后面
pWnd->ReleaseDC(pDC);
为何在第一种情况下,先发送WM_PAINT消息再作图反而正常。
而先作图再发送WM_PAINT消息反而不能正常显示?
实在想不明白,拜托各位指点一二