请高手指点:关于避免图形重绘闪烁的双缓冲区绘图问题 ???(200分)

  • 主题发起人 主题发起人 yhli
  • 开始时间 开始时间
Y

yhli

Unregistered / Unconfirmed
GUEST, unregistred user!
关于避免图形重绘闪烁的双缓冲区绘图问题:
在主窗口绘图为了避免闪烁,一般采用双缓冲区绘图技术。我认为在重绘清除窗口时,关键是不要或禁止对绘图窗口直接擦除,而使用内存中的位图(如bufBmp:TBitmap)来覆盖绘图主窗口。但在图像缩小时,发现窗口内没有擦除干净,也就是没有完全将窗口覆盖掉,在图像放大时,不存在这个问题。(为了保证缩放同步,我对bufBmp.canvas和主窗口的Camvas的坐标映射关系,进行同步操作:SetWindowExtEx()和SetViewPortOrgEx。所以坐标映射关系应该没有问题)。望对这方面技术比较熟悉的高手指点迷津!
 
路过学习 帮你顶
 
图形重绘因该是采用首先擦除原图形,然后重绘图形的方式,而不是采用覆盖的方式。我觉得你说的不是很明白!
 
图形重绘在内存中的位图Canvas上是首先擦除原图形,然后重绘图形,但在主窗口中,如果采用这种方式,就不可避免要产生闪烁,所以我认为应该是将内存中事先绘制好的图形,拷贝到主窗口中,跳过擦除,从而避免或减少闪烁。
 
后退
顶部