【问题标题】:WM_PAINT Bitblitting multiple times?WM_PAINT Bitblitting 多次?
【发布时间】:2013-01-16 20:27:15
【问题描述】:

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

如果我想更改图像,我该如何再次调用它?

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

【问题讨论】:

    标签: c++ winapi bitmap wm-paint bitblit


    【解决方案1】:

    通常您使该区域无效(例如通过InvalidateRect)并让您的WM_PAINT 处理程序重新绘制它。经常闪烁的原因是因为您没有覆盖WM_ERASEBKGND 处理程序,您的WM_PAINT 处理程序没有进行双缓冲绘制,或者您正在使(或重新绘制)比您需要的更大的区域无效.

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

    【讨论】:

      猜你喜欢
      • 2021-05-04
      • 2015-02-14
      • 2018-11-10
      • 1970-01-01
      • 1970-01-01
      • 2011-07-22
      • 2016-12-14
      • 2012-09-09
      • 1970-01-01
      相关资源
      最近更新 更多