我有一个带有三个 MDI 窗口的应用程序,它们都显示 OpenGL 内容。在 XP 上,一切正常。但是在 Vista/Win7 上,mdi 子窗口不能正确刷新。
启动后,所有窗口都正确显示其内容。但是当我将焦点从一个 mdi 窗口更改为下一个时,这两个窗口被清除(即,它们只显示白色,没有内容)。我不知道为什么窗口会被清除,发生这种情况时它们不会收到任何 WM_* 消息,当然也不会收到 WM_PAINT 消息。
调整这些窗口的大小时,我正确地收到了 WM_PAINT 消息(在 WM_SIZE 之后)并重绘了内容,但随后窗口也被清除了,这导致调整大小时出现奇怪的闪烁。调整大小停止后,窗口保持清除(白色),直到我手动强制刷新。
这与启用或禁用 Aero 无关。
知道为什么会这样吗?