登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

面包会有的

... ...

 
 
 

日志

 
 

VC截取桌面到bitmap  

2010-11-17 17:18:21|  分类: VC++ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

// lpRect 为截取的区域

// by lymking@hotmail.com

HBITMAP CopyScrToBitmap(LPRECT lpRect)

{
    HDC hScrDC=0, hMemDC;
    HBITMAP hBitmap, hOldBitmap;
    //int nX,nY,xX2,nY2;
    // bitmap width&height
    int nWidth, nHeight;
    // screen resolution
    int xScrn, yScrn;
    // makesure the rectangle not NULL
    if (IsRectEmpty(lpRect))
    {
        return NULL;
    }
    // create desktop screen dc
    hScrDC = GetDesktopWindow()->GetDC()->m_hDC;/*CreateDC(_T("DISPLAY"), NULL, NULL, NULL);*/
    int iOK =1;
    if (hScrDC == NULL)
    {
        iOK = 0;
    }
    // create mem dc
    hMemDC = CreateCompatibleDC(hScrDC);
   
    // get resolutions
    xScrn = GetDeviceCaps(hScrDC, HORZRES);
    yScrn = GetDeviceCaps(hScrDC, VERTRES);
    if(lpRect->left < 0)
        lpRect->left = 0;
    if (lpRect->top < 0)
        lpRect->top = 0;
    // 屏幕
    nWidth = (lpRect->right - lpRect->left);
    nHeight = (lpRect->bottom - lpRect->top);
    // create bitmap
    hBitmap = CreateCompatibleBitmap(hScrDC, nWidth, nHeight);
    // select new bitmap
    hOldBitmap = (HBITMAP)SelectObject(hMemDC, hBitmap);
    // copy scr dc to mem dc
    BitBlt(hMemDC, 0,0, nWidth, nHeight, hScrDC, 0, 0, SRCCOPY);
    // get bitmap handle
    hBitmap = (HBITMAP)SelectObject(hMemDC, hOldBitmap);
    // clean
    DeleteDC(hScrDC);
    DeleteDC(hMemDC);
    return hBitmap;
}
  评论这张
 
阅读(872)| 评论(0)

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018