int GetBitmapFromScreen() 

char *lpBuf; 
HBITMAP hBitmap,hOld ; 
HDC hDC,hcDC; 
BITMAP bb;BITMAPINFO b; 
HANDLE hp,fh=NULL; 
DWORD dwX,dwY; 
//*************** 
//dwX=GetSystemMetrics(SM_CXSCREEN); 
//dwY=GetSystemMetrics(SM_CYSCREEN); 
dwX=100; 
dwY=100; 
hDC=GetDC(0); 
hcDC=CreateCompatibleDC(hDC); 
hBitmap=CreateCompatibleBitmap(hDC,dwX,dwY); 
hOld=(HBITMAP)SelectObject(hcDC,hBitmap); 
BitBlt(hcDC,0, 0,dwX,dwY, hDC, 0, 0, SRCCOPY); 
bb.bmWidth=dwX; 
bb.bmHeight =dwY; 
bb.bmPlanes = 1; 
bb.bmWidthBytes=bb.bmWidth*3; 
bb.bmBitsPixel=3; 
bb.bmType=0; 
b.bmiHeader.biSize = sizeof(BITMAPINFOHEADER); 
b.bmiHeader.biWidth=dwX; 
b.bmiHeader.biHeight =dwY; 
b.bmiHeader.biPlanes = 1; 
b.bmiHeader.biBitCount =24; 
b.bmiHeader.biCompression = BI_RGB; 
b.bmiHeader.biSizeImage = 0; 
b.bmiHeader.biXPelsPerMeter = 0; 
b.bmiHeader.biYPelsPerMeter = 0; 
b.bmiHeader.biClrUsed = 0; 
b.bmiHeader.biClrImportant = 0; 
b.bmiColors[0].rgbBlue=8; 
b.bmiColors[0].rgbGreen=8; 
b.bmiColors[0].rgbRed=8; 
b.bmiColors[0].rgbReserved=0; 
hp=GetProcessHeap(); 
lpBuf=(char *)HeapAlloc(hp,HEAP_ZERO_MEMORY,bb.bmHeight*bb.bmWidth*4); 

GetDIBits(hcDC,hBitmap,0,dwY,lpBuf,&b,DIB_RGB_COLORS); 

///////////////////////////////////显示到桌面////////////////////////////////
CClientDC dc(NULL);
for (int i=0;i<100;i++)
{
for (int k=0;k<100;k++)
{
BYTE b = *lpBuf++;
BYTE g = *lpBuf++;
BYTE r = *lpBuf++;
dc.SetPixel(k+200,i+200,RGB(r,g,b));
//*lpBuf++;
}
}
/////////////////////////////////////////////////////////////////////////

ReleaseDC(NULL,hDC); 
DeleteDC(hcDC); 
DeleteObject(hBitmap); 
DeleteObject(hOld); 
HeapFree(hp,0,lpBuf); 
return true; 
}

GetBitmapFromScreen的更多相关文章

  1. Drectx 3D窗口后台截图

    //GDI与DX截屏API操作 LPDIRECTDRAW lpDD = NULL; LPDIRECTDRAWSURFACE lpDDSPrime = NULL; LPDIRECTDRAWSURFACE ...

随机推荐

  1. MySQL用户授权与权限

    MySQL权限如下表 权限名字 权限说明 Context CREATE 允许创建新的数据库和表 Databases, tables, or indexes DROP 允许删除现有数据库.表和视图 Da ...

  2. 《Thinking in Java》学习笔记(一)

    服务器端的编程可以参考另一本书<企业Java编程>(Thinking in Enterprise Java). 1.基本类型 基本型别 大小 最小值 最大值  默认值 boolean -- ...

  3. ehcache memcache redis 三大缓存男高音[转]

    原文链接:http://blog.csdn.net/jationxiaozi/article/details/8509732 最近项目组有用到这三个缓存,去各自的官方看了下,觉得还真的各有千秋!今天特 ...

  4. Python基础篇(一)

    首先需要从Python的官网下载python的安装程序,下载地址为:www.python.org/downloads.最新的版本为3.4.1,下载和操作系统匹配的安装程序并安装即可. 安装好了后,在开 ...

  5. CF 716E. Digit Tree [点分治]

    题意:一棵树,边上有一个个位数字,走一条路径会得到一个数字,求有多少路径得到的数字可以整除\(P\) 路径统计一般就是点分治了 \[ a*10^{deep} + b \ \equiv \pmod P\ ...

  6. 发生Windows无法访问远程共享的解决办法

    发现问题 今天在访问远程时发生一个很郁闷的网络错误,如下图所示 问题修复步骤 这个问题可以采用以下步骤来修复 Step1.添加网络映射盘 添加网络映射时选择使用其他凭据登陆,这样就有机会让Window ...

  7. java生产者与消费者模式

    前言: 生产者和消费者模式是我们在学习多线程中很经典的一个模式,它主要分为生产者和消费者,分别是两个线程, 目录 一:生产者和消费者模式简介 二:生产者和消费者模式的实现 声明:本例来源于java经典 ...

  8. Sourcetree的安装与使用

    1 安装遇到的问题 https://segmentfault.com/q/1010000007643870 解决该问题的方法: http://www.jianshu.com/p/3478e2a214a ...

  9. 02 Java类的加载机制

    1.什么是类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区内的数据结构 ...

  10. js中boolean类型的理解

    <html> <head> <script type="text/javascript"> var x="12"; aler ...