请高手帮忙分析一下下面代码的效率问题?
void CMapInfoPluginView::PrepareBmpTotalImage(CDC *pDC, CRect &rect){ if( !m_bmpTotalImage.GetSafeHandle() ) m_bmpTotalImage.CreateCompatibleBitmap( pDC, rect.Width(), rect.Height() ); else m_bmpTotalImage.SetBitmapDimension( rect.Width(), rect.Height() ); CDC dcMemSrc; dcMemSrc.CreateCompatibleDC( pDC ); dcMemSrc.SelectObject( &m_bmpBackground ); CDC dcMemDst; dcMemDst.CreateCompatibleDC( &dcMemSrc ); dcMemDst.SelectObject( &m_bmpTotalImage ); dcMemDst.BitBlt( 0, 0, rect.Width(), rect.Height(), &dcMemSrc, 0, 0, SRCCOPY ); Graphics *pGraphics = Graphics::FromHDC( dcMemDst.m_hDC ); for( size_t i = 0; i < m_vecTaskModule.size(); i++ ) { m_vecTaskModule[i].pTaskModule->Draw( pGraphics, rect ); } dcMemSrc.DeleteDC(); dcMemDst.DeleteDC(); delete pGraphics;}