在這裡為大家提供一種CBitmap複制的方法
經過自己的一層封裝,就形成的非常好用的CBitmap的複制工具函數
先看函數實作:
href="http://www.j2megame.org/wupei/plugins/plogeshi/styles/plogeshi.css" target="_blank" rel="external nofollow" type="text/css" rel="stylesheet" />
- HBITMAP CMyDialog:: CopyBitmap (HBITMAP hSourceHbitmap )
- {
- CDC sourceDC;
- CDC destDC;
- sourceDC. CreateCompatibleDC ( NULL );
- destDC. CreateCompatibleDC ( NULL );
- //The bitmap information.
- BITMAP bm = { 0 };
- //Get the bitmap information.
- :: GetObject (hSourceHbitmap, sizeof (bm ), &bm );
- // Create a bitmap to hold the result
- HBITMAP hbmResult = :: CreateCompatibleBitmap (CClientDC ( NULL ), bm. bmWidth, bm. bmHeight );
- HBITMAP hbmOldSource = (HBITMAP ):: SelectObject (sourceDC. m_hDC, hSourceHbitmap );
- HBITMAP hbmOldDest = (HBITMAP ):: SelectObject (destDC. m_hDC, hbmResult );
- destDC. BitBlt ( 0, 0, bm. bmWidth, bm. bmHeight, &sourceDC, 0, 0, SRCCOPY );
- // Restore DCs
- :: SelectObject (sourceDC. m_hDC, hbmOldSource );
- :: SelectObject (destDC. m_hDC, hbmOldDest );
- :: DeleteObject (sourceDC. m_hDC );
- :: DeleteObject (destDC. m_hDC );
- return hbmResult;
- }
接下來函數調用:
- //這樣簡單的操作就可以實作CBitmap的複制
- CBitmap CpyBitmap;
- //傳回值可以檢測是否圖檔拷貝成功
- CpyBitmap->Attach (CopyBitmap (SrcBitmap ) );