方法一:将内存设备描述表copy到位图中获取位图句柄
HDC hScrDC,hMemDC;//屏幕和内存设备描述表
HBITMAP hBitmap,hOldBitmap;//位图句柄if(IsRectEmpty(rect)) return NULL;
//为屏幕创建设备描述表
//hScrDC=CreateCompatibleDC(NULL);
//hScrDC=::GetDC(this->m_hWnd);
hScrDC=GetWindowDC()->GetSafeHdc();
//为屏幕设备描述表创建兼容的内存设备描述表
hMemDC=CreateCompatibleDC(hScrDC);
//创建一个与屏幕设备描述表兼容的位图
hBitmap=CreateCompatibleBitmap(hScrDC,rect.Width(),rect.Height());
//把新位衅选到内存设备描述表中
hOldBitmap=(HBITMAP)SelectObject(hMemDC,hBitmap);
//把屏幕设备描述表拷贝到内存设备描述表中
BitBlt(hMemDC,-2,-2,rect.Width(),rect.Height(),hScrDC,0,0,SRCCOPY);
//得到屏幕位图句柄
hBitmap=(HBITMAP)SelectObject(hMemDC,hOldBitmap);
DeleteDC(hScrDC);
DeleteDC(hMemDC);
return hBitmap;
方法二:针对于vc6.0
http://blog.youkuaiyun.com/wltg2001/archive/2008/04/17/2300258.aspx

本文介绍了三种在MFC中将窗口内容保存为图片的方法。方法一涉及使用内存设备描述表和位图句柄。方法二是针对VC6.0的,包括拷屏和保存为BMP文件的步骤。方法三利用了GDI+实现。
最低0.47元/天 解锁文章
851

被折叠的 条评论
为什么被折叠?



