I use double buffer to draw, but i need to show phone skin background.
and in my functions the background is white? How about this.
this is my code.
ConstructL()
{
...
TDisplayMode displayMode = CEikonEnv::Static()->ScreenDevice()->DisplayMode();
iBackBufferBitmap = new(ELeave) CFbsBitmap();
User::LeaveIfError(iBackBufferBitmap->Create(aRect.Size(), displayMode));
// Create bitmap device for the bitmap
iBackBufferDevice = CFbsBitmapDevice::NewL(iBackBufferBitmap);
// Create graphics context for the bitmap
User::LeaveIfError(iBackBufferDevice->CreateContext(iBackBufferGc));
iBackGround = CAknsBasicBackgroundControlContext::NewL(KAknsIIDQsnBgAreaMain, Rect(), EFalse);
...
}
void CMessagingContainer:rawBoard() const
{
iBackBufferGc->SetBrushStyle( CGraphicsContext::ENullBrush);
iBackBufferGc->Clear(iClientRect);
CFbsBitmap* icon = NULL;
CFbsBitmap* iconmask = NULL;
TRect rect;
...
iBackBufferGc->BitBltMasked(TPoint(30,30),icon,rect,iconmask,EFalse);
}
void CMessagingContainer:raw( const TRect& aRect ) const
{
CWindowGc& gc = SystemGc();
MAknsSkinInstance* skin = AknsUtils::SkinInstance();
MAknsControlContext* cc = AknsDrawUtils::ControlContext( iListBox );
if(AknsDrawUtils::HasBitmapBackground(skin,cc) )
{
AknsDrawUtils::Background(skin,cc,this,gc,aRect);
}
gc.BitBlt(aRect.iTl, iBackBufferBitmap);
}

rawBoard() const


