Filip Navara wrote:
I overlooked that the code used GetUpdateRect with the last parameter set to FALSE, it should be set to TRUE. In that case GetUpdateRect is responsible for sending the WM_NCPAINT message and cleaning the update region.
No, that shouldn't be a problem. The last parameter just specifies if the update region is supposed to be erased (by sending a WM_ERASEBKGND message). It doesn't affect the validation of update region at all. Having it set to TRUE will likely cause more flickering because it's not needed to fill the area.
- Thomas