CPaintDC dc(this); CRect rect;
GetClientRect(&rect);
dc.SetStretchBltMode(STRETCH_HALFTONE); m_image.Draw(dc.m_hDC,0,0,rect.Width(),rect.Height());//用CImage.Draw方法算不算双缓冲??

解决方案 »

  1.   

    图片在CImage里存着,以极短的时间实现了图像拷贝,应该是缓冲了。
    与从内存DC向屏幕拷贝有一样的效果。
      

  2.   

    很明显,不算。
    双缓冲首先得构建虚拟 DC,绘图是绘制到虚拟 DC 上,最后再整体拷贝到原 DC 上。
      

  3.   

    你这个代码写得应该没有什么问题,不会引起闪烁。========================================
    提界面问题,UIPower有问必答!
    界面论坛:http://www.uipower.com/bbs
      

  4.   

    如果用m_image.Draw画了一个图,描画任务就算完成了,那就相当于双缓冲。CImage内的数据和DC关联的bitmap大同小异。m_image.Draw的处理速度也是很快的。Draw图就是拷图。尽管如此,我还是推荐,使用内存DC进行缓冲。
    我曾作过一个拼图软件,用的就是,CImage -〉 内存DC -〉窗口DC。
    为什么这么用,因为我要用m_image.Draw画两张以上的图,就相当没有缓冲了。所以就用内存DC进行缓冲。http://www.softist.com/software/puzzle/puzzle_chn.htm