解决方案 »

  1.   

    MemDC.CreateCompatibleDC(NULL); 改成MemDC.CreateCompatibleDC(pDC); 
    然后EraseBkGnd直接return TRUE
      

  2.   

    4楼是正解,你放心吧,项上人头保证4楼绝对是正解。EraseBkGnd一定要直接return TRUE 否则会闪的比较厉害。如果背景有杂色,就提前把背景填充一下。就像你其中的代码:
    MemDC.FillSolidRect(0, 0, 160, 160, RGB(255,255,255));
      

  3.   

    不行的亲,我看网上关于双缓冲的资料都是一个CDC用来直接绘图,而不像我的代码,同一个CDC即用来获取像素,又用来绘图
      

  4.   

    再仔细看了一下你的代码,
    1.UpdateData(TRUE);这个可以去掉
    2.MemDC.GetPixel改成pDC.GetPixel吧,因为原像素肯定要用原DC取
      

  5.   

    绘制的代码应该整理到OnPaint中
    然后用CPaintDC