WinAPI双缓冲技术

4

默认的WinAPI应用程序没有双缓冲。相反,它非常出色地确保只绘制需要绘制的内容,从而使其具有无缝外观。但是,当您调整窗口大小时,整个窗口都需要重新绘制,这会导致控件、选项卡背景以及选项卡白色之间闪烁。

因此,我的问题是,支持双缓冲的最简单方法是什么?

2个回答

9
创建一个与窗口大小相同的位图,将内容渲染到该位图中,完成后将其复制回窗口。
您可以在现有代码中进行简单的替换。不要使用绘制到窗口的设备上下文,而是使用绘制到位图的设备上下文,并仅使用原始设备上下文将位图复制回窗口。
请确保保留位图 - 不要在每次绘制调用中都创建它。只需在窗口大小调整时重新创建即可。

5
请看下面的文章:使用离屏DC实现无闪烁显示
该文章介绍了一种在窗口设备上下文(DC)中绘制图形的技术,使屏幕不会闪烁。这种技术非常简单易行。
我几年前就是从这个教程中学习到如何防止闪烁的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接