这是用于C ++-win32。基本上,我已经从文件将图像(bmp)加载到HBITMAP中,并将其位图化为主窗口的设备上下文。
如果要更改图像,我又怎么称呼它?
我已经调用了InvalidateRectangle()和UpdateWindow(),但这会导致窗口控件闪烁。
最佳答案
通常,您可以使该区域无效(例如,通过InvalidateRect
),然后让您的WM_PAINT
处理程序重新绘制该区域。之所以经常出现闪烁,是因为您没有覆盖WM_ERASEBKGND
处理程序,您的WM_PAINT
处理程序没有进行双缓冲绘画,或者使(或重新绘画)的区域大于需要的范围。 。
该页面可能会有所帮助:Flicker-free Drawing: Techniques to eliminate flicker from your applications