我用循环画了很多直线,如何把它们清除啊
for()
{
CClientDC dc(this);
dc.MoveTo(50,209-i);
dc.LineTo(50+i,209-i);
}
不在OnDraw/OnPaint()的话,Invalidate()重画即可。
要不,就在画线之前设置bool变量控制。。
// 输出文本
void CSystemSetDlg::OutText(CRect rect, CString txt, COLORREF BkColor, COLORREF TextColor)
{
CFont *poldfont, *newfont=new CFont();
CClientDC dc(this);
//创建字体
newfont->CreateFont(25, 0, 0, 0,FW_BOLD, 0, 0,0,GB2312_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,L"宋体");
poldfont=dc.SelectObject(newfont);
//dc.SetBkColor(BkColor);
dc.SetBkMode(TRANSPARENT); //表示透明方式
dc.SetTextColor(TextColor);
dc.DrawText(txt, &rect, DT_LEFT);
dc.SelectObject(poldfont);
newfont->DeleteObject();
delete newfont;
}
用Invalidate()实现重绘操作