WM_PAINT多次比特化

WM_PAINT Bitblitting multiple times?

本文关键字:PAINT WM      更新时间:2023-10-16

这适用于c++ - win32。基本上,我已经从文件中将图像(bmp)加载到HBITMAP中,并将其位元化到主窗口的设备上下文中。

如果我想改变图像,我该怎么调用它呢?

我已经调用了InvalidateRectangle()和UpdateWindow(),但这会导致窗口控件闪烁

通常您会使该区域无效(例如通过InvalidateRect),并让您的WM_PAINT处理程序重新绘制它。你经常会得到闪烁的原因是因为你没有覆盖WM_ERASEBKGND处理程序,你的WM_PAINT处理程序没有做双缓冲绘画,或者你使一个比你需要的面积更大的区域无效(或重新绘画)。

无闪烁绘图:消除应用程序闪烁的技术