blessyou312的专栏

学习笔记

VC实现对屏幕的截取

HBITMAP CEspDlg::CopyScreenToBitmap(LPRECT lpRect)
{
 HDC hScrDC,hMemDC;//屏幕和内存设备描述表
 HBITMAP hBitmap,hOldBitmap;//位图句柄
 int nX,nY,nX2,nY2;//选定区域坐标
 int nWidth,nHeight;//位图宽度和高度
 int xScrn,yScrn;
 if(IsRectEmpty(lpRect))
  return NULL;
 //为屏幕创建设备描述表
 hScrDC=CreateDC("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);
 

 nWidth=nX2-nX;
 nHeight=nY2-nY;
 //创建一个与屏幕设备描述表兼容的位图
 hBitmap=CreateCompatibleBitmap(hScrDC,nWidth,nHeight);
 //把新位衅选到内存设备描述表中
 hOldBitmap=(HBITMAP)SelectObject(hMemDC,hBitmap);
 //把屏幕设备描述表拷贝到内存设备描述表中
 BitBlt(hMemDC,0,0,nWidth,nHeight,hScrDC,nX,nY,SRCCOPY);
 //得到屏幕位图句柄
 hBitmap=(HBITMAP)SelectObject(hMemDC,hOldBitmap);
 DeleteDC(hScrDC);
 DeleteDC(hMemDC);
 return hBitmap;

阅读更多
文章标签: null
想对作者说点什么? 我来说一句

VC实现类似于屏幕截取图像

2008年11月13日 134KB 下载

vc++ 实现屏幕截图

2014年09月15日 70KB 下载

没有更多推荐了,返回首页

不良信息举报

VC实现对屏幕的截取

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭