Okay, so in my application, there are a bunch of winAPI and a few custom controls. Yay...
Now, normally, they will just quietly redraw themselves for animations, state changing, ect.... and it all works fine.
But I have a method of class Window called fix(). This is called whenever the whole window needs to be updated. It resizes the controls and invalidates the window.
When this happens, the background is drawn, then the tab control, then all the others on top. This causes very irritating blinking, especially when resizing the window (because of constant calls to fix()).
What I have tried:
- WS_EX_COMPOSITED. This only double-buffers the individual controls. Its an improvement, but the flickering inevitably remains.
- Turning off background drawing. Hardly solves the problem, and actually makes matters worse.
So: I need a technique/method/whatever to allow me to double-buffer the window in its entirety. I figured that handling the WM_PAINT message by myself might be a solution, but I wouldn't know where to begin. I have a horrible feeling this isn't even possible...
Please help, this is a critical issue. I will be very relieved when this stupid little issue is fixed.