默认的winAPI应用程序没有双缓冲。相反,它确实能够确保只绘制需要绘制的内容,并使其具有无缝外观。但是,当您调整窗口大小时,需要重新绘制整个窗口,这会导致控件之间的闪烁,选项卡上的背景,以及选项卡的白色。
所以我的问题是,在我的应用程序中支持双缓冲的最简单方法是什么?
答案 0 :(得分:6)
创建一个与窗口大小相同的位图,渲染到该位图,并在完成后将其重新插入窗口。
您可以在现有代码中进行非常简单的就地替换。不使用渲染到窗口中的设备上下文,而是使用渲染到位图中的设备上下文,并且仅使用原始DC来回显示位图。
确保保留位图 - 不要在每次绘画调用中创建它。您只需在调整窗口大小时重新创建它。
答案 1 :(得分:3)
请查看以下文章:Flicker-Free Displays Using an Off-Screen DC。
本文介绍了一种技术 绘制到窗口设备上下文 (DC)以这样的方式显示屏幕 没有闪烁。技术是 非常简单易行。
几年前我学会了如何防止本教程中的闪烁。