好的,我的应用程序中有许多WinAPI和一些自定义控件。通常情况下,它们会在动画、状态更改等方面静默地重绘自己,一切都很正常。
但是,我有一个名为fix()的Window类方法。每当整个窗口需要更新时,就会调用该方法。它会调整控件的大小并使窗口失效。
当这种情况发生时,首先绘制背景,然后是选项卡控件,然后是其他所有控件。这会导致非常恼人的闪烁,特别是在调整窗口大小时(因为不断调用fix())。
我尝试过的解决方法:
- WS_EX_COMPOSITED。这只是双缓冲单个控件。这是一个进步,但闪烁仍然不可避免。 - 关闭背景绘制。几乎无法解决问题,实际上还会使问题变得更糟。
所以:我需要一种技术/方法/任何东西来允许我完全双缓冲窗口。我想处理WM_PAINT消息可能是一个解决办法,但我不知道从哪里开始。我非常担心这甚至不可能...
请帮忙,这是一个关键问题。当这个愚蠢的小问题得到解决时,我会非常宽慰。
但是,我有一个名为fix()的Window类方法。每当整个窗口需要更新时,就会调用该方法。它会调整控件的大小并使窗口失效。
当这种情况发生时,首先绘制背景,然后是选项卡控件,然后是其他所有控件。这会导致非常恼人的闪烁,特别是在调整窗口大小时(因为不断调用fix())。
我尝试过的解决方法:
- WS_EX_COMPOSITED。这只是双缓冲单个控件。这是一个进步,但闪烁仍然不可避免。 - 关闭背景绘制。几乎无法解决问题,实际上还会使问题变得更糟。
所以:我需要一种技术/方法/任何东西来允许我完全双缓冲窗口。我想处理WM_PAINT消息可能是一个解决办法,但我不知道从哪里开始。我非常担心这甚至不可能...
请帮忙,这是一个关键问题。当这个愚蠢的小问题得到解决时,我会非常宽慰。