HBITMAP CopyBitmap(HBITMAP hScrBmp) { CDC scrDc; CDC desDc; / scrDc.CreateCompatibleDC(NULL); desDc.CreateCompatibleDC(NULL); / BITMAP bm = {0}; / ::GetObject(hScrBmp, sizeof(bm), &bm); / HBITMAP hDesBmp = ::CreateBitmap(bm.bmWidth, bm.bmHeight,1,::GetDeviceCap(scrDc.m_hDC,BITSPIXEL),NULL); HBITMAP hOldScrBmp = (HBITMAP)scrDc.SelectObject(hScrBmp); HBITMAP hOldDesBmp = (HBITMAP)desDc.SelectObject(hDesBmp); / desDc.BitBlt(0,0,bm.bmWidth, bm.bmHeight, &scrDc, 0, 0, SRCCOPY); / scrDc.SelectObject(hOldScrBmp); desDc.SelectObject(hOldDesBmp); / scrDc.DeleteDC(); desDc.DeleteDC(); / return hDesBmp; }