Bitmap的載入(從螢幕DC到記憶體DC)

來源:互聯網
上載者:User
HDC hScrDC,hMemDC;//screen and mem dc
 HBITMAP hBitmap, hOldBitmap;//handle of bitmap
 int xScrn, yScrn;//the resolution of screen
 int nX, nY, nX2, nY2;              
   int nWidth, nHeight;
 nX = rect.left;  
 nY = rect.top;  
 nX2 = rect.right;  
 nY2 = rect.bottom;
 hScrDC = CreateDC("DISPLAY", NULL, NULL, NULL);//create dc for screen
 hMemDC = CreateCompatibleDC(hScrDC);//create compatible mem dc for screen dc
 xScrn = GetDeviceCaps(hScrDC, HORZRES);//get resolution of screen
 yScrn = GetDeviceCaps(hScrDC, VERTRES);
 if (nX < 0)  
  nX = 0;  
 if (nY < 0)  
  nY = 0;  
 if (nX2 > xScrn)  
  nX2 = xScrn;  
 if (nY2 > yScrn)  
  nY2 = yScrn;
 nWidth = nX2 - nX;  
 nHeight = nY2 - nY;
 //hBitmap = CreateCompatibleBitmap(hMemDC, nWidth, nHeight);
 hBitmap = CreateCompatibleBitmap(hScrDC, nWidth, nHeight);//create compatible bitmap for screen dc
 hOldBitmap = (HBITMAP)SelectObject(hMemDC, hBitmap);//select bitmap into the mem dc
 BitBlt(hMemDC, 0, 0, nWidth, nHeight,hScrDC,nX,nY, SRCCOPY);//copy screen dc to mem
 hBitmap =(HBITMAP)SelectObject(hMemDC, hOldBitmap);//get the handle of screen bitmap
 DeleteDC(hScrDC);//clear
 DeleteDC(hMemDC);
 DeleteObject(hOldBitmap);
 return hBitmap;//return the handle of bitmap

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.