正文

VC截取桌面到bitmap2010-08-17 19:53:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/lym51/51672.html

分享到:

// 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; }

阅读(3517) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册