有一段rect  默认情况下,rect区域中贴上图片A  //图片A是默认背景自带的 不是BitBlt的
鼠标移到rect区域中 rect区域中用BitBlt贴上图片B
鼠标移出rect区域中 rect区域中贴上图片A移出rect区域后怎么恢复到默认情况下啊?让rect区域显示图片A!
不要用BitBlt , 不要Invalidate 闪的太厉害!
还有什么办法啊?有没有什么保存dc上下文的? 可行吗?

解决方案 »

  1.   

    闪的厉害就用双重缓存解决,把ERAZE废掉
      

  2.   

    1、你的B是自己画上去的,移出时判断不要画B,重新画的时候就会画默认的背景了。2、或者之前将A背景保存下来到一个cdc中。这样就可以用双缓冲画图,避免闪烁
      

  3.   

    Invalidate 其实,就是销毁当前窗口,然后重建窗口啊。你既然要走这个函数,说明你需要重绘。在重绘的里面,一开始肯定要用dc的。你这时候是只要是建立双缓冲,然后通过双缓冲来操作,最后直接整体输出,没有什么不妥的。你对双缓冲的理解有误解、
      

  4.   

    我不准备用Invalidate啊,用双缓冲还要BitBlt!
      

  5.   

    BitBlt贴,用InvalidateRect()局部刷新
      

  6.   

    问半天还没人明白我到底问什么!我不要BitBlt 也不要什么双缓冲
    有没有那种直接保存dc上下文 然后恢复的!
      

  7.   

    保存恢复图象就是创建一个DC,在保存时把窗口该区域的图象BitBlt到内存DC,恢复时再BitBlt回去,不需要Invalidate,也不会感觉闪烁。如果你坚持不用BitBlt,就当我没回复。