Autoraw is a VB unique. Most programs build a double buffer is not VB. It is necessary to define a memory DC. This DC, in general, only programs know that other programs are unlikely to get and override it.
When the AutoREDRAW property is True, it has established a two-buffered, with two HDCs with the front desk and the background, which will remain consistent after processing the WM_PAINT message or call the refresh method.
Double buffer is just a method of accelerating the front desk DC. When using a double buffer, the DC drawing will be conducted in the background, and the last one-time replication is in front of the front desk, without double buffering, the drawing is done directly at the front desk. Regardless of the way, its purpose is to update the front desk DC. So I have to understand that the background memory DC is invisible, and ultimately to copy to the front desk, the user will see that it is necessary to change the content of DC, just use GETDC to obtain its front desk DC to rewrite, so I get the background of others. DC doesn't make much sense.
However, simple and direct rewriting is impossible to get a persistent effect, because when it receives the WM_PAINT message again, it will use direct redraw (unparalleled buffer) or copy the background DC to the front desk (with double buffer) method, restore the original . Correct program: It should be to intercept the WM_PAINT message with the subclass method, or define a valid area, or chasing your content after it is rehabilized.
Finally, I said: VB's refresh method needs to handle a lot of things, and is the global heavy painting. It is conceivable that it is a bit slow, use API, directly draws the contents of the background HDC into the front desk, will be more than 10 times, due to still You can take a local redrawing method, so the speed is thousands of times a few thousand times!