Either of these techniques should work:
PlgBlt
, which "performs a bit-block transfer of the bits of color data from the specified rectangle in the source device context to the specified parallelogram in the destination device context", with the coordinates of a rotated parallelogram
A combination of SetWorldTransform
, passing in a rotation matrix, and normal BitBlt
.
Note with both these, there should be no rotation transformation in the source DC, only the destination.
I'm afraid I'm not able to give you a code example right now, but some googling did turn up some examples of how to use these functions to rotate an arbitrary number of degrees, which you could modify to hard-code to 90 degrees:
I'm not sure any of these count as quick or easy compared to using GDI+ :)