void CCLOCK_1View::OnDraw(CDC* pDC)
{
CCLOCK_1Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
    
pDC->SetBkMode(TRANSPARENT);
RECT rect;
GetClientRect(&rect);
         CRect rectt(rect.left,rect.top,rect.right,rect.bottom);
         CBrush brush(RGB(0,0,0));
CBrush *oldbrush=pDC->SelectObject(&brush);
pDC->FillRect(&rectt,&brush);
         pDC->SeleteObject(oldbrush);
}
这段代码再执行时屏幕上总是有闪烁,于是我进行如下修改:
void CCLOCK_1View::OnDraw(CDC* pDC)
{
CCLOCK_1Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
    
pDC->SetBkMode(TRANSPARENT);
RECT rect;
GetClientRect(&rect);
         CRect rectt(rect.left,rect.top,rect.right,rect.bottom); CDC memdc;
memdc.CreateCompatibleDC(pDC);
HBITMAP bmp=CreateCompatibleBitmap(pDC->GetSafeHdc(),rectt.Width(),rectt.Height());
         HBITMAP oldbmp=(HBITMAP)memdc.SelectObject(bmp); CBrush brush(RGB(0,0,0));
CBrush *oldbrush=pDC->SelectObject(&brush);
memdc.FillRect(&rectt,&brush);
pDC->BitBlt(0,0,rectt.Width(),rectt.Height(),&memdc,0,0,SRCCOPY);
         pDC->SeleteObject(oldbrush);
         memdc.SelectObject(oldbmp);
DeleteObject(bmp);
memdc.DeleteDC();
}
我想先在后面画再blt上,可是还是不行,还是有闪烁,为什么不行啊???