有关GDI操作

来源:互联网 发布:淘宝企业店升级天猫 编辑:程序博客网 时间:2024/05/22 08:15

我用循环画了很多直线,如何把它们清除啊
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()实现重绘操作

原创粉丝点击