我使用了MEMDC(我改过了)。我设置了一个定时器。我想实现透明绘图到控件上。但我我不想在控件上显示除我要的图形外的任何其他背景比如我就只要画个圆,而且要在很高刷新状态不闪。
void CClockSta::OnPaint()
{ CPaintDC dc(this); // device context for painting
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CStatic::OnPaint()

GetClientRect(&m_rect);    
CTime time_cuurent;
time_cuurent=CTime::GetCurrentTime();
m_strTime=time_cuurent.Format("%Y 年 %m 月 % 日 %H : %M : %S "); CMemDC pdc(&dc,m_rect); //默认位图是全黑色的
   pdc.SelectObject(this->m_brushBlue);
pdc.SelectObject(this->m_pen);

CRect rect=m_rect;
rect.DeflateRect(1,1); pdc.RoundRect(rect,CPoint(5,5));
pdc.SetBkMode(TRANSPARENT);
pdc.SetTextColor(m_TXcolor);
pdc.DrawText(m_strTime,rect,DT_CENTER|DT_VCENTER|DT_SINGLELINE );//DT_VCENTER|必须和DT_SINGLELINE一起 CMemDC pdc2(&dc,m_rect); //这个是屏蔽图,需要把底色设置为白色
pdc2.FillSolidRect(m_rect,RGB(255,255,255));
pdc2.SetROP2(R2_BLACK);
pdc2.SelectObject(this->m_brushBlue);
pdc2.SelectObject(this->m_pen);

pdc2.RoundRect(rect,CPoint(5,5));
pdc2.SetBkMode(TRANSPARENT);
pdc2.SetTextColor(RGB(0,0,0));
pdc2.DrawText(m_strTime,rect,DT_CENTER|DT_VCENTER|DT_SINGLELINE );
pdc2.BitBlt(SRCAND);//执行AND运算
pdc.BitBlt(SRCPAINT);//执行OR运算    }当我设置SetTimer(1,1,0)的时候,很屏幕很闪
pdc2.BitBlt(SRCAND);//执行AND运算
pdc.BitBlt(SRCPAINT);//执行OR运算  
上面两句我随便注释掉一句问题,就不闪了。