This article is great because it show a new method to draw points in a device context. But the GetDIBits() function does not perform as well as I wish is a large surface like a full screen. It takes about 750ms to create a DIB for a 1280x1024 resolution (PIII 450, 256Mo), and 200 ms to set a DIB.
Obviously you are reading the contents of the bitmap right off the client DC, where it is blitted. Well, thats why the visual part of the About dialog is taken with the rotation as well as it is a child of your main window and hence is drawn on the parent when invoked. Its s funny effect though, i ve never seen rotating windows :)
I ve got a strange bug though. It appears that part of the memory yur bitmap occupies is somehow (!!!) shared with the about dialog box. They seem to overlap or something.
The error comes obvious when i display the about dialog box, while rotation is in progress - then i see a chunk of the dialog rotating right there with the gradient image.
I havent seen more into that, just telling you this.