VC将指定区域保存为图片

VC将指定区域保存为图片

ID:37904484

大小:44.50 KB

页数:13页

时间:2019-06-02

VC将指定区域保存为图片_第1页
VC将指定区域保存为图片_第2页
VC将指定区域保存为图片_第3页
VC将指定区域保存为图片_第4页
VC将指定区域保存为图片_第5页
资源描述:

《VC将指定区域保存为图片》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.HBITMAPCopyScreenToBitmap(LPRECTlpRect);//将屏幕指定区域存成图片HBITMAPCopyScreenToBitmap(LPRECTlpRect)//lpRect代表选定区域{HDChScrDC,hMemDC;//屏幕和内存设备描述表HBITMAPhBitmap,hOldBitmap;//位图句柄intnX,nY,nX2,nY2;//选定区域坐标intnWidth,nHeight;//位图宽度和高度intxScrn,yScrn;//屏幕分辨率//确保选定区域不为空矩形if(IsRectEmpty(lpRect))returnNUL

2、L;//为屏幕创建设备描述表hScrDC=CreateDC(_T("DISPLAY"),NULL,NULL,NULL);//为屏幕设备描述表创建兼容的内存设备描述表hMemDC=CreateCompatibleDC(hScrDC);//获得选定区域坐标nX=lpRect->left;nY=lpRect->top;nX2=lpRect->right;nY2=lpRect->bottom;//获得屏幕分辨率xScrn=GetDeviceCaps(hScrDC,HORZRES);yScrn=GetDeviceCaps(hScrDC,VERTRES);//确保选定区域是可见的if

3、(nX<0)nX=0;if(nY<0)nY=0;if(nX2>xScrn)nX2=xScrn;if(nY2>yScrn)nY2=yScrn;nWidth=nX2-nX;nHeight=nY2-nY;//创建一个与屏幕设备描述表兼容的位图hBitmap=CreateCompatibleBitmap(hScrDC,nWidth,nHeight);//把新位图选到内存设备描述表中hOldBitmap=(HBITMAP)SelectObject(hMemDC,hBitmap);//把屏幕设备描述表拷贝到内存设备描述表中BitBlt(hMemDC,0,0,nWidth,nHeigh

4、t,hScrDC,nX,nY,SRCCOPY);//得到屏幕位图的句柄hBitmap=(HBITMAP)SelectObject(hMemDC,hOldBitmap);//清除DeleteDC(hScrDC);DeleteDC(hMemDC);//返回位图句柄returnhBitmap;}2.HBITMAPGetSrcBit(HDChDC,LPRECTrEct)//设置一个成员变量m_hBitmap,在OnDraw或者OnPaint中调用,从内存中首先获得它,而不像第一个函数那样,临时去截屏幕,因为如果突然在截图的瞬间最小化了窗口,那么函数1截取的范围就不是我们所需要的了

5、。HBITMAPGetSrcBit(HDChDC,LPRECTrEct){HDChBufDC;HBITMAPhBitmap,hBitTemp;//创建设备上下文(HDC)hBufDC=CreateCompatibleDC(hDC);//创建HBITMAPhBitmap=CreateCompatibleBitmap(hDC,abs(rEct->right-rEct->left),abs(rEct->bottom-rEct->top));hBitTemp=(HBITMAP)SelectObject(hBufDC,hBitmap);//得到位图缓冲区StretchBlt(hBu

6、fDC,0,0,abs(rEct->right-rEct->left),abs(rEct->bottom-rEct->top),hDC,rEct->left,rEct->top,abs(rEct->right-rEct->left),abs(rEct->bottom-rEct->top),SRCCOPY);//得到最终的位图信息hBitmap=(HBITMAP)SelectObject(hBufDC,hBitTemp);//释放内存DeleteObject(hBitTemp);::DeleteDC(hBufDC);returnhBitmap;}3.boolSaveBMPT

7、oFile(HBITMAPhBitmap,LPSTRlpFileName);//将图片存成bmp文件boolSaveBMPToFile(HBITMAPhBitmap,LPSTRlpFileName)//hBitmap为刚才的屏幕位图句柄,lpFileName为位图文件名{HDChDC;//设备描述表intiBits;//当前显示分辨率下每个像素所占字节数WORDwBitCount;//位图中每个像素所占字节数//定义调色板大小,位图中像素字节大小,位图文件大小,写入文件字节数DWORDdwPaletteSize=0,dwBmB

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。