带有自定义控件的无闪烁对话框

时间:2012-02-23 03:39:58

标签: dialog controls flicker

我的MFC对话框有问题,这些对话框是使用派生的MFC类绘制的,用于自定义绘制控件。

我们的一个客户有一台真正慢的PC,显卡很差,甚至普通的Windows对话框也很慢。在我们的案例中,问题更严重。可以看到每个单独的控件(例如按钮,组框,标签)单独绘制。

在大多数情况下,我已经覆盖/实现了OnPaint()处理程序,认为绘制我提供的任何设备上下文都应该是可行的方法。

理想情况下,我想做的是在屏幕外缓冲区上绘制所有控件,以便在需要对话重绘时 - 砰 - 它只是将单个渲染图像复制到屏幕上,而不是将每个控件绘制到屏幕上屏幕一个接一个。

有人可以告诉我如何实现这种双缓冲吗?

1 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法。通过将对话框扩展样式设置为WS_EX_COMPOSITED,图形工作得很好..我现在遇到的问题是我保持连续的WM_PAINT和WM_ERASEBKGND消息流在启用此样式时获取。

有谁知道如何阻止WM_PAINT / WM_ERASEBKGND消息不断发生?