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

如果要更改图像,我又怎么称呼它?

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

最佳答案

通常,您可以使该区域无效(例如,通过InvalidateRect),然后让您的WM_PAINT处理程序重新绘制该区域。之所以经常出现闪烁,是因为您没有覆盖WM_ERASEBKGND处理程序,您的WM_PAINT处理程序没有进行双缓冲绘画,或者使(或重新绘画)的区域大于需要的范围。 。

该页面可能会有所帮助:Flicker-free Drawing: Techniques to eliminate flicker from your applications

07-28 04:23