VC实现对屏幕的截取

原创 2007年09月17日 11:32:00

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;

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

VC的内存绘图防止屏幕闪烁技术的实现

转自:http://xvdongming001.blog.163.com/blog/static/739891892008513105535645/ 在工业控制系统中,经常需要实时的显示一些曲线...

vc下简单的屏幕截取

VC 实现屏幕保护

对于屏幕保护程序,大家应该不会陌生。屏幕保护程序的后缀名是.scr,其实它就是一个可执行的.exe文件。   VC提供了一个支持屏幕保护的开发库scrnsave.lib,这个库已经定制了一个屏幕保护...

vc下简单的屏幕截取

如何消除vc屏幕闪烁的方法

也许我们都碰到过这种情况,当你想重画某个窗口的时候,或你需要每隔一段时间要进行重画窗口,窗口会不停的闪烁。那么如何消除闪烁呢?借鉴了别人的经验,自己也总结一下,现将总结的几种方法介绍一下,供大家参考。...

vc实现远程屏幕

  • 2013-05-16 21:40
  • 4.28MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)