您的位置:首页 > 其它

MFC下图片保存的截屏程序

2009-10-22 16:24 274 查看
截屏程序如下:

void CMy2dClusterView::SaveAsJPG(CString name)
{
//HWND hwnd = ::GetDesktopWindow();
//HWND hwnd = ::GetActiveWindow();
HWND hwnd = this->GetSafeHwnd();
HDC hDC = ::GetDC(hwnd);//获取屏幕DC

RECT rect;
::GetClientRect(hwnd, &rect);//获取屏幕大小
HDC hDCMem = ::CreateCompatibleDC(hDC);//创建兼容DC

HBITMAP hBitMap = ::CreateCompatibleBitmap(hDC, rect.right, rect.bottom);//创建兼容位图
HBITMAP hOldMap = (HBITMAP)::SelectObject(hDCMem, hBitMap);//将位图选入DC,并保存返回值

::BitBlt(hDCMem, 0, 0, rect.right, rect.bottom, hDC, 0, 0, SRCCOPY);//将屏幕DC的图象复制到内存DC中

CImage image;
image.Attach(hBitMap);
//image.Save(_T("c://B.jpg"));//如果文件后缀为.bmp,则保存为为bmp格式
CString filename;
filename = name+_T(".jpg");
image.Save(filename);
image.Detach();

::SelectObject(hDCMem, hOldMap);//选入上次的返回值

//释放
::DeleteObject(hBitMap);
::DeleteDC(hDCMem);
::DeleteDC(hDC);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: