好的,所以在我的应用程序中,有一堆 winAPI 和一些自定义控件。耶...
现在,通常情况下,他们会悄悄地为动画、状态改变等重新绘制自己……一切都很好。
但我有一个名为fix() 的类Window 方法。每当需要更新整个窗口时都会调用它。它调整控件的大小并使窗口无效。
发生这种情况时,将绘制背景,然后是选项卡控件,然后是顶部的所有其他控件。这会导致非常恼人的闪烁,尤其是在调整窗口大小时(因为不断调用 fix())。
我试过的:
- WS_EX_COMPOSITED。这只会对各个控件进行双重缓冲。它是一种改进,但闪烁不可避免地仍然存在。
- 关闭背景绘图。很难解决问题,实际上使事情变得更糟。
所以:我需要一种技术/方法/任何东西来让我对整个窗口进行双重缓冲。我认为自己处理 WM_PAINT 消息可能是一种解决方案,但我不知道从哪里开始。我有一种可怕的感觉,这甚至是不可能的……
请帮忙,这是一个关键问题。当这个愚蠢的小问题得到解决时,我会感到非常欣慰。