图片淡出效果

来源:互联网 发布:书生商务软件怎么用 编辑:程序博客网 时间:2024/05/22 12:26
void CCellWallMainFrameListBox::RefreshSelectAd(CWindowGc& gc,CFbsBitmap *imgToBrighten) const
{


CFbsBitmap* iEmptyBitmap = new ( ELeave ) CFbsBitmap();
CleanupStack::PushL( iEmptyBitmap );

User::LeaveIfError( iEmptyBitmap->Create( imgToBrighten->SizeInPixels(), CEikonEnv::Static()->DefaultDisplayMode() ) );

CFbsBitmapDevice *iGD = CFbsBitmapDevice::NewL( iEmptyBitmap );
CleanupStack::PushL( iGD );
CFbsBitGc *iGC;
User::LeaveIfError( iGD->CreateContext( iGC ) );

iGC->SetPenStyle( CGraphicsContext::ENullPen );
TRgb aColor(255,255,128);
iGC->SetBrushColor( aColor );
iGC->SetBrushStyle( CGraphicsContext::ESolidBrush );
iGC->DrawRect( TRect(TPoint(0,0), iEmptyBitmap->SizeInPixels()) );
iGC->SetBrushStyle( CGraphicsContext::ENullBrush );

delete iGC;
CleanupStack::PopAndDestroy( iGD );

TRect rc(Rect());
TRect rect;
if ((50 == version) || (52 == version))
{
rect.SetRect(TPoint(rc.iTl.iX, rc.iBr.iY-45),TPoint(rc.iBr.iX, rc.iBr.iY));
}
else
{
rect.SetRect(TPoint(rc.iTl.iX, rc.iBr.iY-30),TPoint(rc.iBr.iX, rc.iBr.iY));
}
gc.DrawBitmapMasked(rect,imgToBrighten,TRect(TPoint(0,0),iEmptyBitmap->SizeInPixels()),iEmptyBitmap,EFalse);

CleanupStack::PopAndDestroy( iEmptyBitmap );


}
这段代码实现图片变淡,你可以通过调整TRgb aColor(255,255,128);这里的颜色值来观察图片的显示效果