In fullscreen it works fine on Vista, but if you look at your screen shot a little to the right of the center between red and green, it looks to me like the gradient doesn't change fluently, and its a bit the same between the red and blue, but its somewhat vague, but not there in full screen and not there on Windows7. Its probably not something that is worth spending too much time figuring out why its doing it, because it could well be something driver related, which you won't be able to fix anyways.
I must say that I think opengl seems much easier to work with than dx9, at least from just the quick look at the code I just had. I think you will find VBO in opengl fairly easy to get the hang of.