I am fairly proficient with c++ and am now attempting to learn graphics programming. I would be interested to know which you feel is best for a real newbie to this subject to learn: Direct 2D, SDL or SFML?
Avoid SDL 1.2 like the plague. It's horribly archaic.
SDL 2.0 (aka SDL HG) supposedly fixes its problems but I haven't tried it yet myself.
I also really like SFML. Though again, take SFML 2.0 over SFML 1.6 (although SFML 1.6 is still pretty decent).
I tend to shy away from DirectX. I've worked with it in the past and it was not pleasant. Unless they really changed the way they do things I definitely would not recommend it for beginners.