Changing Bitmap Coordinates
For the LPaint::PaintDCxxx functions, you have the option of setting source and destination rectangles. The source rectangles are in bitmap coordinates and the destination rectangles are in display coordinates (TOP_LEFT).
If the image is not in TOP_LEFT view perspective, then the source rectangle is in the bitmap's view perspective. It is easier to calculate the source rectangle in terms of the display rectangle and then convert it to the bitmap's view perspective using LBitmapBase::RectToBitmap as follows:
LBitmapBase MyBitmap;
RECT rcSrc;
//calculate the rcSrc in TOP_LEFT coordinates
….
MyBitmap.RectToBitmap(TOP_LEFT, &rcSrc);