MFC通過(guò)系統(tǒng)API將指定窗口導(dǎo)出為圖片,方法之一:
BOOL COutputManager::OutputFromWND(IN HWND hWnd, IN RECT rect)
{
HDC? hDC = ::GetDC(hWnd); //獲取屏幕DC
HDC? hDCMem = ::CreateCompatibleDC(hDC); //創(chuàng)建兼容DC
HBITMAP? hBitMap = ::CreateCompatibleBitmap(hDC, rect.right, rect.bottom); //創(chuàng)建兼容位圖
HBITMAP? hOldMap = ( HBITMAP )::SelectObject(hDCMem, hBitMap); //將位圖選入DC,并保存返回值
::BitBlt(hDCMem, 0, 0, rect.right, rect.bottom, hDC, 0, 0, SRCCOPY); //將屏幕DC的圖象復(fù)制到內(nèi)存DC中
CImage image;
image.Attach(hBitMap);
image.Save(_T( "c://YMDownloads//output.jpg" ));//如果文件后綴為.bmp,則保存為為bmp格式
image.Detach();
::SelectObject(hDCMem, hOldMap); //選入上次的返回值
//釋放
::DeleteObject(hBitMap);
::DeleteDC(hDCMem);
::DeleteDC(hDC);
return TRUE;
}