1.句柄拷贝
iCanvasBackgroundBmp = new(ELeave) CFbsBitmap;
iCanvasBackgroundBmp->Duplicate(Canvas()->BackgroundBitmap()->Handle());
=============================================================
2.内存拷贝
CFbsBitmap* capturedBitmap;
CFbsBitmap* copyBitmap;
copyBitmap->Create(capturedBitmap->SizeInPixels(),capturedBitmap->DisplayMode());
TRect tempRect(TPoint(0,0),capturedBitmap->SizeInPixels() );
TInt iBufLength = tempRect.Width() * tempRect.Height() * 2;
Mem::Copy(copyBitmap->DataAddress(),capturedBitmap->DataAddress(),iBufLength);
you must use LockHeap() and UnockHeap() around calls to DataAddress() since the address may change before you can copy from it. This is stated in the api.
Duplicates a bitmap. This function does not create a copy of the bitmap. It just assigns another handle to the bitmap in the font and bitmap server, and sets this object's handle to that. If the specified bitmap is in the ROM, it just assigns a pointer to it.