Each CPicture
-derived class must provide:
a constructor which creates a ‘real-world’ picture
and sets a data member to the picture’s original size in
device-independent units (for example, iOriginalSizeInTwips
could
be used for twips);
a GetOriginalSizeInTwips()
function which returns
the original size of the picture in twips;
a Draw()
function which draws the picture to a
particular graphics map on a graphics context — at this point, and not
before, the picture’s co-ordinates should be converted from
device-independent units to pixels;
an ExternalizeL()
function which externalises the
picture to a stream.
Normally, a CPicture
-derived class will also
provide:
an InternalizeL()
function to internalise the
picture from a stream;
StoreL()
and RestoreL()
functions to
store and restore pictures from a stream store;
one or more data members to access and manipulate the original picture — the picture’s scaling may be altered (this changes the ‘real-world’ size of the picture in twips);
if necessary, behaviour that performs appropriate clean-up.
CApaIconPicture
is an example of a
CPicture
-derived class.