我在用一图片做背景时遇到问题,就是当更新时有很大闪烁,于是我想到了GetUpdateRect(&rc,TRUE)函数,即取到真正需要更新的区域,可是没效果,我如果时对话框操作时,此函数能正确使用,可是如果用在CView类中的OnDraw中时,此时取得的rc居然时(0,0,0,0),也即没取到真正需要更新的区域,为什么?应该用什么函数???或者怎样避免闪烁??

解决方案 »

  1.   

    取区域:GetClientRect()避免闪烁:在内存里画好先,然后再输出到屏幕上。
      

  2.   

    他说的对啊。 getclientrect就得到view的区域了
    避免闪烁也是在CmemDC里画好,然后贴到view上
      

  3.   

    GetClientRect是得到View的区域,没错,可是每次更新这么大的区域,肯定要闪烁,不管是不是从内存拷贝,因为我就是用Bitblt从内存拷贝出来,但还是闪烁的很厉害,我想知道能不能只得到更新的区域,而并不是整个客户区,这样实际更新的区域就会小很多,更新时就不会有闪烁了,在Dialog模式下,可以用GetUpdateRect得到需要更新的区域,而在View模式下却得不到.