1

我正在使用 ChoosePixelFormat、SetPixelFormat 等在 Windows 上创建 OpenGL 渲染上下文。这一切都很好,但是,就在绘制 OpenGL 内容之前,窗口设置为全白。简短,但仍然可见。

窗口类的背景画笔是GetStockObject(HOLLOW_BRUSH),我不响应WM_ERASEBKGND或WM_PAINT,OpenGL上下文立即用黑色清除。这一切似乎都无关紧要。

如果我在运行时暂时关闭 OpenGL 渲染循环,隐藏然后显示窗口,我也可以重现此问题。这使它完全变白。

如果将窗口设置为 OpenGL 渲染目标,Windows 似乎正在清除窗口,并且为此使用白色。这是一个已知问题吗?有没有办法控制默认颜色?黑色会好很多。谢谢!

(使用带有 ATI Radeon HD5750 适配器的 Windows 7。)

4

2 回答 2

0

我也有这个问题。我必须通过什么都不做并返回 true 来处理 WM_ERASEBKGND 消息以防止白色闪烁。

于 2012-12-13T16:54:25.237 回答
0

我的解决方案是在第一条 WM_PAINT 消息到达时绘制一些东西。

于 2012-12-14T13:37:36.130 回答