c++ - WinAPI 双缓冲

标签 c++ winapi double-buffering

默认的 winAPI 应用程序没有双缓冲。相反,它在确保只绘制需要绘制的内容方面做得非常非常好,并赋予它无缝的外观。但是,当您调整窗口大小时,整个内容都需要重新绘制,这会导致控件、选项卡背景以及有时选项卡的白色之间出现闪烁。

所以我的问题是,在我的应用程序中支持双缓冲的最简单方法是什么?

最佳答案

创建一个窗口大小的位图,渲染到该位图中,完成后将其 blit 回窗口。

您可以在现有代码中进行非常直接的就地替换。不要使用呈现到窗口中的设备上下文,而是使用呈现到位图中的设备上下文,并且只使用原始 DC 将位图 blit 回来。

一定要保留位图——不要在每次绘制调用中都创建它。您只需在调整窗口大小时重新创建它。

关于c++ - WinAPI 双缓冲,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3895305/

相关文章:

c++ - fmod 还是不 fmod?

c++ - 排序操作后添加到 vector 的垃圾值

delphi - 如何获取 Win32_DiskPartition 类中的 GettingOffset 属性值

Java swing双缓冲

wpf - WinForms - 像绘画一样的 WPF

python - HWSURFACE 和 DOUBLEBUF 有什么作用?

C++两次传递函数指针导致问题

C++正则表达式从文件路径获取文件夹

win32 DELPHI 中的 LINQ

c - FreeLibrary API 调用失败怎么办?