zoukankan      html  css  js  c++  java
  • GetBitmapFromScreen 分类: VC++ 2014-09-28 17:54 443人阅读 评论(0) 收藏



    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; 

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

  • 相关阅读:
    sqlserver 动态 sql语句的执行
    SqlServer位运算 权限设计
    更改主数据 的管理员账户
    如何查看dll 的PublicKeyToken
    varbinary 与 字符串 的互换函数
    analysis service 配置远程连接
    sqlserver字符串拆分(split)方法汇总
    openfile 安装备忘
    Lamp 在centos 中的安装
    Oracle查询表中的各列的列名,数据类型,以及类型长度
  • 原文地址:https://www.cnblogs.com/mao0504/p/4706508.html
Copyright © 2011-2022 走看看