在单文本文档中画了一个表格,在表格中显示一些数字,
这些数字是变化的,这样就有点闪,怎样才能解决呢?

解决方案 »

  1.   

    简单的就是InvalidateRect,如果效果不好就双缓冲了。
    百度一下,很多双缓冲的资料的
      

  2.   

    给你个双缓存的例子:
    例子:CMyPaintView::ondraw()
    {
    CClientDC dc(this);
    //创建内存DC
    pDLMemDC.CreateCompatibleDC(&dc);
    CBitmap bmap;
    CRect rect;
    GetClientRect(&rect);
    bmap.CreateCompatibleBitmap(&dc,rect.Width(),rect.Height());
    pDLMemDC.SelectObject(&bmap);

    //用白色填充当前画布
    pDLMemDC.FillSolidRect(&rect, 0x00FFFFFF);
    //画线
    CMyPaintView::MDrawLine();
    //将内存DC中的图像显示到客户区
    dc.BitBlt(rect.left,rect.top,rect.Width(),rect.Height(),
    &pDLMemDC,rect.left,rect.top,SRCCOPY);
    //删除pDLMemDC
    pDLMemDC.DeleteDC();
    //删除bmap
    bmap.DeleteObject();
    }
    CMyPaintView::MDrawLine()
    {
                            CPen pnewpen;

    CPen *poldpen;
    pnewpen.CreatePen(PS_SOLID,1,RGB(0,0,255));
    poldpen=pDLMemDC.SelectObject(&pnewpen);

    pDLMemDC.MoveTo(100,100);
    pDLMemDC.LineTo(200,200);                        //选出画笔
    pDLMemDC.SelectObject(poldpen);
    //删除画笔
    pnewpen.DeleteObject();
    }