This topic provides examples of using CGraphicsContext::DrawBitmap()
to draw a bitmap that is stretched or compressed.
The bitmap blitting functions of the bitmapped graphics context (CBitmapContext
) cannot be used to perform scaling of the bitmap. They always draws the bitmap using its dimensions in pixels. The overloaded GDI CGraphicsContext::DrawBitmap()
function, however, can be used to draw a bitmap that is:
stretched or compressed to a set size in twips
stretched and/or compressed to fit a given rectangle.
Note: DrawBitmap()
is slower than BitBlt()
. You should therefore use BitBlt()
in preference wherever possible.
These examples assume that bitmap
is a pointer to a valid CFbsBitmap
object.
A bitmap can have a real world size in twips set for it, and be drawn scaled to that size.
Construct a TSize
with the required dimensions in twips.
Set the size of the bitmap using CFbsBitmap::SetSizeInTwips()
. The default size in twips of a bitmap when loaded is (0,0)
.
Draw the bitmap using DrawBitmap()
// Set twips size TSize bmpSizeInTwips(2000,2000); bitmap->SetSizeInTwips(bmpSizeInTwips); gc.DrawBitmap(TPoint(50,50), bitmap);
DrawBitmap()
can also draw a bitmap by stretching it to fit a given rectangle.
// Draw bitmap stretched from the origin to 100,100 TRect rect(0,0,100,100); gc.DrawBitmap(rect, bitmap);