怎么清空显示的文字

怎样清空显示的文字?
本帖最后由 VisualEleven 于 2015-09-30 15:20:06 编辑
  我用双缓冲显示文字,现在要把这些显示的文字清掉,怎么搞?

   
void playdlg::OnPaint()
{
 CClientDC dc( this );
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CFormView::OnPaint()
CString temp;   
CRect rect;
GetWindowRect(&rect);//得到对话框的范围
ScreenToClient(rect);
CRect rectTemp=rect;
temp=_T("开始绘图......");

//  CBrush brush(RGB(0,0,0));
//  dc.FillRect(&rect,&brush);
// 设置m_newFont对象的字体为当前字体,并将之前的字体指针保存到m_pOldFont   

CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
ASSERT(dcMem.GetSafeHdc());
CBitmap bmp;
bmp.CreateCompatibleBitmap(&dc, rect.Width(), rect.Height());
ASSERT(bmp.GetSafeHandle());
CBitmap* pOldBitmap = (CBitmap*)dcMem.SelectObject(&bmp);
dcMem.FillSolidRect(&rect, GetSysColor(COLOR_3DFACE));
dcMem.SetBkMode(TRANSPARENT);
m_pOldFont = (CFont*)dcMem.SelectObject(&m_newFont);   

dcMem.TextOut (rect.left+30,rect.top+80 ,temp);
rectTemp.left+=30;
rectTemp.top+=160;

// 恢复以前的字体   
dc.BitBlt(0, 0, rect.Width(), rect.Height(), &dcMem, 0, 0, SRCCOPY);
dcMem.SelectObject(pOldBitmap);
dcMem.SelectObject(m_pOldFont); 
dcMem.DeleteDC();
}


------解决思路----------------------
跳过TextOut
------解决思路----------------------
使用一个全局变量,记住当前画图的状态(显示文字或不显示文字)。
当状态为不显示文字时,跳过TextOut不执行。