默认的 winAPI 应用程序没有双缓冲。相反,它在确保只绘制需要绘制的内容方面做得非常非常好,并赋予它无缝的外观。但是,当您调整窗口大小时,整个内容都需要重新绘制,这会导致控件、选项卡背景以及有时选项卡的白色之间出现闪烁。
所以我的问题是,在我的应用程序中支持双缓冲的最简单方法是什么?
最佳答案
创建一个窗口大小的位图,渲染到该位图中,完成后将其 blit 回窗口。
您可以在现有代码中进行非常直接的就地替换。不要使用呈现到窗口中的设备上下文,而是使用呈现到位图中的设备上下文,并且只使用原始 DC 将位图 blit 回来。
一定要保留位图——不要在每次绘制调用中都创建它。您只需在调整窗口大小时重新创建它。
关于c++ - WinAPI 双缓冲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3895305/