ホームページ >バックエンド開発 >C++ >Win32 GDI を使用して Windows アプリケーションのスクリーンショットをキャプチャする方法

Win32 GDI を使用して Windows アプリケーションのスクリーンショットをキャプチャする方法

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-08 13:23:12921ブラウズ

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 は画面のデバイス コンテキストを取得します。
  • CreateCompatibilityDC は、以下と互換性のあるメモリ デバイス コンテキストを作成します。画面 DC.
  • GetDeviceCaps は現在の画面を取得します
  • CreateSupportBitmap は、画面 DC と互換性があり、解像度に一致するビットマップを作成します。
  • SelectObject は、ビットマップをメモリ DC に選択します。
  • BitBlt は、画面からピクセルをコピーします。 DC をメモリ内のビットマップに DC します。
  • DeleteDC はメモリと画面を解放しますDC。

以上がWin32 GDI を使用して Windows アプリケーションのスクリーンショットをキャプチャする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。