首頁 >後端開發 >C++ >如何使用 Win32 GDI 擷取 Windows 應用程式的螢幕截圖?

如何使用 Win32 GDI 擷取 Windows 應用程式的螢幕截圖?

Patricia Arquette
Patricia Arquette原創
2024-12-08 13:23:12918瀏覽

How to Capture Screenshots of Windows Applications Using Win32 GDI?

使用 Win32 在 Windows 應用程式中截圖

擷取目前螢幕顯示是應用程式開發中的常見需求。在 Windows 中,可以使用 Win32 的圖形裝置介面 (GDI) 函數有效地實現此目的。

解決方案

以下代碼片段演示瞭如何使用Win32:

HDC hScreenDC = GetDC(nullptr);
HDC hMemoryDC = CreateCompatibleDC(hScreenDC);
int width = GetDeviceCaps(hScreenDC,HORZRES);
int height = GetDeviceCaps(hScreenDC,VERTRES);
HBITMAP hBitmap = CreateCompatibleBitmap(hScreenDC,width,height);
HBITMAP hOldBitmap = static_cast<HBITMAP>(SelectObject(hMemoryDC,hBitmap));
BitBlt(hMemoryDC,0,0,width,height,hScreenDC,0,0,SRCCOPY);
hBitmap = static_cast<HBITMAP>(SelectObject(hMemoryDC,hOldBitmap));
DeleteDC(hMemoryDC);
DeleteDC(hScreenDC);

說明

  • GetDC 檢索螢幕的裝置上下文。
  • CreateCompatibleDC 建立與以下相容的記憶體設備上下文畫面DC。
  • GetDeviceCaps取得目前螢幕解析度。
  • CreateCompatibleBitmap 建立與螢幕 DC 相容並匹配解析度的點陣圖。
  • SelectObject 將位圖選取到記憶體 DC 中。
  • BitBlt 從螢幕複製像素DC到記憶體DC中的點陣圖。
  • DeleteDC釋放記憶體和螢幕DC。

以上是如何使用 Win32 GDI 擷取 Windows 應用程式的螢幕截圖?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn