这适用于C ++ - win32。基本上我已经从文件中将一个图像(bmp)加载到HBITMAP中,并将其bitblitted到主窗口的设备上下文。
如果我想更改图片,我该如何再次调用它?
我调用了InvalidateRectangle()和UpdateWindow(),但这会导致窗口控件闪烁。
答案 0 :(得分:2)
通常您会使该区域无效(例如,通过InvalidateRect
)并让您的WM_PAINT
处理程序重新绘制它。您经常会出现闪烁的原因是因为您没有覆盖WM_ERASEBKGND
处理程序,您的WM_PAINT
处理程序没有进行双缓冲绘制,或者您正在使一个更大的区域无效(或重新绘制)比你需要的。
此页面可能有所帮助:Flicker-free Drawing: Techniques to eliminate flicker from your applications